// Embeddable, single-function "Public Pixel Font"
// https://ggbot.itch.io/public-pixel-font
//
// 8x8 monospace, 88 languages, plus emojis. The entire font with fast
// lookup hash table fits in 24kiB. Covers 1,010 code points with 889
// unique glyphs. Repeats are due to similarities, plus mistakes in the
// underlying font (e.g. U+FB4F renders as U+05D0). Use -DDEMO to view
// the entire font as a 32x32 glyph map.
//
// I extracted the glyph table with stb_truetype.h (-DEXTRACT), which
// was quite easy and painless. This can be used in future font updates,
// though if more code points are introduced, the hash table will need
// to be rebuilt.
//
// This is free and unencumbered software released into the public domain.

typedef int i32;
typedef unsigned char u8;
typedef int char32_t;  // GDB hint
typedef char32_t c32;

// Get the 8x8 glyph for the given code point. Points to an 8-byte array
// of 64 1-bit pixels, where each byte is a row, starting at the top of
// the glyph. Returns null for unsupported code points.
static u8 *getglyph(c32 cp)
{
    // Public Pixel Font 1.1 by GGBotNet (public domain)
    static u8 glyph[1010][8] = {
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x0c, 0x1e, 0x1e, 0x1e, 0x0c, 0x00, 0x0c},
        {0x00, 0x36, 0x36, 0x24, 0x12, 0x00, 0x00, 0x00},
        {0x00, 0x36, 0x7f, 0x36, 0x36, 0x36, 0x7f, 0x36},
        {0x00, 0x08, 0x7e, 0x0b, 0x3e, 0x68, 0x3f, 0x08},
        {0x00, 0x42, 0x65, 0x32, 0x18, 0x2c, 0x56, 0x23},
        {0x00, 0x0e, 0x1b, 0x0e, 0x5b, 0x73, 0x63, 0x3e},
        {0x00, 0x0c, 0x0c, 0x08, 0x04, 0x00, 0x00, 0x00},
        {0x00, 0x38, 0x0c, 0x06, 0x06, 0x06, 0x0c, 0x38},
        {0x00, 0x0e, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0e},
        {0x00, 0x36, 0x1c, 0x36, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x08, 0x08, 0x3e, 0x08, 0x08},
        {0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x08, 0x04},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c},
        {0x00, 0x20, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x01},
        {0x00, 0x3e, 0x73, 0x63, 0x63, 0x63, 0x67, 0x3e},
        {0x00, 0x1e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e},
        {0x00, 0x3e, 0x63, 0x30, 0x1c, 0x06, 0x03, 0x7f},
        {0x00, 0x3e, 0x63, 0x60, 0x3c, 0x60, 0x63, 0x3e},
        {0x00, 0x78, 0x6c, 0x66, 0x63, 0x7f, 0x60, 0x60},
        {0x00, 0x7f, 0x03, 0x3f, 0x60, 0x60, 0x63, 0x3e},
        {0x00, 0x3e, 0x63, 0x03, 0x3f, 0x63, 0x63, 0x3e},
        {0x00, 0x7f, 0x63, 0x30, 0x18, 0x0c, 0x06, 0x03},
        {0x00, 0x3e, 0x63, 0x63, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x3e, 0x63, 0x63, 0x7e, 0x60, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x0c, 0x0c},
        {0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x0c, 0x08},
        {0x00, 0x00, 0x00, 0x38, 0x1c, 0x0e, 0x1c, 0x38},
        {0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x3e, 0x00},
        {0x00, 0x00, 0x00, 0x0e, 0x1c, 0x38, 0x1c, 0x0e},
        {0x00, 0x3e, 0x63, 0x60, 0x3c, 0x0c, 0x00, 0x0c},
        {0x00, 0x3e, 0x63, 0x6b, 0x6b, 0x3b, 0x03, 0x3e},
        {0x00, 0x1c, 0x36, 0x63, 0x63, 0x7f, 0x63, 0x63},
        {0x00, 0x3f, 0x63, 0x63, 0x3f, 0x63, 0x63, 0x3f},
        {0x00, 0x3e, 0x63, 0x03, 0x03, 0x03, 0x63, 0x3e},
        {0x00, 0x1f, 0x33, 0x63, 0x63, 0x63, 0x33, 0x1f},
        {0x00, 0x7f, 0x03, 0x03, 0x1f, 0x03, 0x03, 0x7f},
        {0x00, 0x7f, 0x03, 0x03, 0x1f, 0x03, 0x03, 0x03},
        {0x00, 0x7e, 0x03, 0x03, 0x7b, 0x63, 0x63, 0x7e},
        {0x00, 0x63, 0x63, 0x63, 0x7f, 0x63, 0x63, 0x63},
        {0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e},
        {0x00, 0x78, 0x60, 0x60, 0x60, 0x63, 0x63, 0x3e},
        {0x00, 0x63, 0x33, 0x1b, 0x0f, 0x1b, 0x33, 0x63},
        {0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x7f},
        {0x00, 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63},
        {0x00, 0x63, 0x67, 0x6f, 0x7b, 0x73, 0x63, 0x63},
        {0x00, 0x3e, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x3f, 0x63, 0x63, 0x3f, 0x03, 0x03, 0x03},
        {0x00, 0x3e, 0x63, 0x63, 0x63, 0x7b, 0x33, 0x5e},
        {0x00, 0x3f, 0x63, 0x63, 0x3f, 0x1b, 0x33, 0x63},
        {0x00, 0x3e, 0x63, 0x03, 0x3e, 0x60, 0x63, 0x3e},
        {0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18},
        {0x00, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x63, 0x63, 0x63, 0x63, 0x36, 0x1c, 0x08},
        {0x00, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x63},
        {0x00, 0x63, 0x77, 0x3e, 0x1c, 0x3e, 0x77, 0x63},
        {0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18},
        {0x00, 0x7f, 0x70, 0x38, 0x1c, 0x0e, 0x07, 0x7f},
        {0x00, 0x3e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3e},
        {0x00, 0x02, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x40},
        {0x00, 0x3e, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3e},
        {0x00, 0x08, 0x1c, 0x36, 0x63, 0x00, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f},
        {0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x3e, 0x60, 0x7e, 0x63, 0x7e},
        {0x00, 0x03, 0x03, 0x3f, 0x63, 0x63, 0x63, 0x3f},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x03, 0x63, 0x3e},
        {0x00, 0x60, 0x60, 0x7e, 0x63, 0x63, 0x63, 0x7e},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x3c, 0x0c, 0x7f, 0x0c, 0x0c, 0x0c, 0x0c},
        {0x00, 0x00, 0x00, 0x7e, 0x63, 0x7e, 0x60, 0x3e},
        {0x00, 0x03, 0x03, 0x3f, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x18, 0x00, 0x1e, 0x18, 0x18, 0x18, 0x7f},
        {0x00, 0x60, 0x00, 0x60, 0x60, 0x60, 0x63, 0x3e},
        {0x00, 0x03, 0x03, 0x63, 0x33, 0x1f, 0x33, 0x63},
        {0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x0e, 0x78},
        {0x00, 0x00, 0x00, 0x3f, 0x6b, 0x6b, 0x6b, 0x6b},
        {0x00, 0x00, 0x00, 0x3f, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x3f, 0x63, 0x3f, 0x03, 0x03},
        {0x00, 0x00, 0x00, 0x7e, 0x63, 0x7e, 0x60, 0x60},
        {0x00, 0x00, 0x00, 0x3b, 0x67, 0x03, 0x03, 0x03},
        {0x00, 0x00, 0x00, 0x7e, 0x03, 0x7f, 0x60, 0x3f},
        {0x00, 0x0c, 0x0c, 0x7f, 0x0c, 0x0c, 0x0c, 0x7c},
        {0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x63, 0x63, 0x36, 0x1c, 0x08},
        {0x00, 0x00, 0x00, 0x63, 0x6b, 0x6b, 0x7f, 0x36},
        {0x00, 0x00, 0x00, 0x77, 0x3e, 0x1c, 0x3e, 0x77},
        {0x00, 0x00, 0x00, 0x63, 0x63, 0x36, 0x1c, 0x0f},
        {0x00, 0x00, 0x00, 0x7f, 0x38, 0x1c, 0x0e, 0x7f},
        {0x00, 0x38, 0x0c, 0x0c, 0x0e, 0x0c, 0x0c, 0x38},
        {0x00, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c},
        {0x00, 0x0e, 0x18, 0x18, 0x38, 0x18, 0x18, 0x0e},
        {0x00, 0x00, 0x00, 0x00, 0x6e, 0x6b, 0x3b, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x0c, 0x00, 0x0c, 0x1e, 0x1e, 0x1e, 0x0c},
        {0x00, 0x08, 0x3e, 0x6b, 0x0b, 0x6b, 0x3e, 0x08},
        {0x00, 0x3c, 0x66, 0x46, 0x1f, 0x06, 0x06, 0x7f},
        {0x00, 0x00, 0x22, 0x1c, 0x14, 0x1c, 0x22, 0x00},
        {0x00, 0x63, 0x36, 0x1c, 0x3e, 0x08, 0x3e, 0x08},
        {0x00, 0x0c, 0x0c, 0x0c, 0x00, 0x0c, 0x0c, 0x0c},
        {0x00, 0x1e, 0x03, 0x3f, 0x63, 0x7e, 0x60, 0x3c},
        {0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x3e, 0x41, 0x5d, 0x45, 0x5d, 0x41, 0x3e},
        {0x00, 0x3e, 0x60, 0x7e, 0x63, 0x7e, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x6c, 0x36, 0x1b, 0x36, 0x6c},
        {0x00, 0x00, 0x00, 0x00, 0x3e, 0x30, 0x30, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00},
        {0x00, 0x3e, 0x41, 0x55, 0x4d, 0x45, 0x41, 0x3e},
        {0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x3e, 0x73, 0x63, 0x67, 0x3e, 0x00, 0x00},
        {0x00, 0x08, 0x08, 0x3e, 0x08, 0x08, 0x00, 0x3e},
        {0x00, 0x3e, 0x63, 0x38, 0x0c, 0x7e, 0x00, 0x00},
        {0x00, 0x3e, 0x63, 0x38, 0x63, 0x3e, 0x00, 0x00},
        {0x00, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x63, 0x63, 0x63, 0x63, 0x3f, 0x03, 0x03},
        {0x00, 0x7c, 0x2e, 0x2f, 0x2e, 0x2c, 0x28, 0x28},
        {0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04},
        {0x00, 0x1e, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00},
        {0x00, 0x3e, 0x63, 0x63, 0x63, 0x3e, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x1b, 0x36, 0x6c, 0x36, 0x1b},
        {0x00, 0x02, 0x03, 0x52, 0x52, 0x77, 0x40, 0x40},
        {0x00, 0x02, 0x03, 0x32, 0x42, 0x27, 0x10, 0x70},
        {0x00, 0x03, 0x04, 0x52, 0x54, 0x73, 0x40, 0x40},
        {0x00, 0x18, 0x00, 0x18, 0x1e, 0x03, 0x63, 0x3e},
        {0x00, 0x04, 0x08, 0x1c, 0x36, 0x63, 0x7f, 0x63},
        {0x00, 0x10, 0x08, 0x1c, 0x36, 0x63, 0x7f, 0x63},
        {0x00, 0x08, 0x14, 0x1c, 0x36, 0x63, 0x7f, 0x63},
        {0x00, 0x28, 0x14, 0x1c, 0x36, 0x63, 0x7f, 0x63},
        {0x00, 0x36, 0x00, 0x1c, 0x36, 0x63, 0x7f, 0x63},
        {0x00, 0x1c, 0x14, 0x1c, 0x36, 0x63, 0x7f, 0x63},
        {0x00, 0x7c, 0x1e, 0x1b, 0x7b, 0x1f, 0x1b, 0x7b},
        {0x00, 0x3e, 0x63, 0x03, 0x63, 0x3e, 0x08, 0x04},
        {0x00, 0x04, 0x08, 0x7f, 0x03, 0x1f, 0x03, 0x7f},
        {0x00, 0x10, 0x08, 0x7f, 0x03, 0x1f, 0x03, 0x7f},
        {0x00, 0x08, 0x14, 0x7f, 0x03, 0x1f, 0x03, 0x7f},
        {0x00, 0x36, 0x00, 0x7f, 0x03, 0x1f, 0x03, 0x7f},
        {0x00, 0x04, 0x08, 0x7f, 0x1c, 0x1c, 0x1c, 0x7f},
        {0x00, 0x10, 0x08, 0x7f, 0x1c, 0x1c, 0x1c, 0x7f},
        {0x00, 0x08, 0x14, 0x7f, 0x1c, 0x1c, 0x1c, 0x7f},
        {0x00, 0x36, 0x00, 0x7f, 0x1c, 0x1c, 0x1c, 0x7f},
        {0x00, 0x1e, 0x36, 0x66, 0x6f, 0x66, 0x36, 0x1e},
        {0x00, 0x28, 0x14, 0x63, 0x67, 0x6b, 0x73, 0x63},
        {0x00, 0x04, 0x08, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x10, 0x08, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x08, 0x14, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x28, 0x14, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x36, 0x00, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x22, 0x14, 0x08, 0x14, 0x22},
        {0x00, 0x3e, 0x63, 0x73, 0x6b, 0x67, 0x63, 0x3e},
        {0x00, 0x04, 0x08, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x10, 0x08, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x08, 0x14, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x36, 0x00, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x10, 0x08, 0x63, 0x63, 0x3e, 0x1c, 0x1c},
        {0x00, 0x03, 0x3f, 0x63, 0x63, 0x63, 0x3f, 0x03},
        {0x00, 0x1e, 0x33, 0x1b, 0x3b, 0x63, 0x6b, 0x3b},
        {0x00, 0x04, 0x08, 0x3e, 0x60, 0x7e, 0x63, 0x7e},
        {0x00, 0x10, 0x08, 0x3e, 0x60, 0x7e, 0x63, 0x7e},
        {0x00, 0x08, 0x14, 0x3e, 0x60, 0x7e, 0x63, 0x7e},
        {0x00, 0x28, 0x14, 0x3e, 0x60, 0x7e, 0x63, 0x7e},
        {0x00, 0x36, 0x00, 0x3e, 0x60, 0x7e, 0x63, 0x7e},
        {0x00, 0x1c, 0x14, 0x3e, 0x60, 0x7e, 0x63, 0x7e},
        {0x00, 0x00, 0x00, 0x3f, 0x6c, 0x7f, 0x0d, 0x3f},
        {0x00, 0x00, 0x7e, 0x03, 0x03, 0x7e, 0x08, 0x04},
        {0x00, 0x04, 0x08, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x10, 0x08, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x08, 0x14, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x36, 0x00, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x04, 0x08, 0x1e, 0x18, 0x18, 0x18, 0x7f},
        {0x00, 0x10, 0x08, 0x1e, 0x18, 0x18, 0x18, 0x7f},
        {0x00, 0x08, 0x14, 0x1e, 0x18, 0x18, 0x18, 0x7f},
        {0x00, 0x36, 0x00, 0x1e, 0x18, 0x18, 0x18, 0x7f},
        {0x00, 0x18, 0x30, 0x7e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x28, 0x14, 0x3f, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x04, 0x08, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x10, 0x08, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x08, 0x14, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x28, 0x14, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x36, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x08, 0x00, 0x3e, 0x00, 0x08},
        {0x00, 0x00, 0x00, 0x3e, 0x73, 0x6b, 0x67, 0x3e},
        {0x00, 0x04, 0x08, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x10, 0x08, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x08, 0x14, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x36, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x10, 0x08, 0x63, 0x63, 0x36, 0x1c, 0x0f},
        {0x00, 0x03, 0x03, 0x3f, 0x63, 0x3f, 0x03, 0x03},
        {0x00, 0x36, 0x00, 0x63, 0x63, 0x36, 0x1c, 0x0f},
        {0x00, 0x3e, 0x00, 0x1c, 0x36, 0x63, 0x7f, 0x63},
        {0x00, 0x3e, 0x00, 0x3e, 0x60, 0x7e, 0x63, 0x7e},
        {0x00, 0x14, 0x1c, 0x1c, 0x36, 0x63, 0x7f, 0x63},
        {0x00, 0x14, 0x1c, 0x3e, 0x60, 0x7e, 0x63, 0x7e},
        {0x00, 0x1c, 0x36, 0x63, 0x7f, 0x63, 0x20, 0x40},
        {0x00, 0x3e, 0x60, 0x7e, 0x63, 0x7e, 0x20, 0x40},
        {0x00, 0x10, 0x08, 0x3e, 0x63, 0x03, 0x63, 0x3e},
        {0x00, 0x10, 0x08, 0x00, 0x7e, 0x03, 0x03, 0x7e},
        {0x00, 0x08, 0x14, 0x3e, 0x63, 0x03, 0x63, 0x3e},
        {0x00, 0x08, 0x14, 0x00, 0x7e, 0x03, 0x03, 0x7e},
        {0x00, 0x08, 0x00, 0x3e, 0x63, 0x03, 0x63, 0x3e},
        {0x00, 0x00, 0x08, 0x00, 0x7e, 0x03, 0x03, 0x7e},
        {0x00, 0x14, 0x08, 0x3e, 0x63, 0x03, 0x63, 0x3e},
        {0x00, 0x14, 0x08, 0x00, 0x7e, 0x03, 0x03, 0x7e},
        {0x00, 0x0a, 0x04, 0x1f, 0x33, 0x63, 0x33, 0x1f},
        {0x00, 0x58, 0x58, 0x5e, 0x1b, 0x1b, 0x1b, 0x1e},
        {0x00, 0x1e, 0x36, 0x66, 0x6f, 0x66, 0x36, 0x1e},
        {0x00, 0x30, 0x78, 0x30, 0x3e, 0x33, 0x33, 0x3e},
        {0x00, 0x3e, 0x00, 0x7f, 0x03, 0x1f, 0x03, 0x7f},
        {0x00, 0x3e, 0x00, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x14, 0x1c, 0x7f, 0x03, 0x1f, 0x03, 0x7f},
        {0x00, 0x14, 0x1c, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x08, 0x00, 0x7f, 0x03, 0x1f, 0x03, 0x7f},
        {0x00, 0x08, 0x00, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x7f, 0x03, 0x1f, 0x03, 0x7f, 0x20, 0x40},
        {0x00, 0x3e, 0x63, 0x7f, 0x03, 0x3e, 0x10, 0x20},
        {0x00, 0x14, 0x08, 0x7f, 0x03, 0x1f, 0x03, 0x7f},
        {0x00, 0x14, 0x08, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x08, 0x14, 0x7e, 0x03, 0x7b, 0x63, 0x7e},
        {0x00, 0x08, 0x14, 0x7e, 0x63, 0x7e, 0x60, 0x3e},
        {0x00, 0x14, 0x1c, 0x7e, 0x03, 0x7b, 0x63, 0x7e},
        {0x00, 0x14, 0x1c, 0x7e, 0x63, 0x7e, 0x60, 0x3e},
        {0x00, 0x08, 0x00, 0x7e, 0x03, 0x7b, 0x63, 0x7e},
        {0x00, 0x08, 0x00, 0x7e, 0x63, 0x7e, 0x60, 0x3e},
        {0x00, 0x7e, 0x03, 0x7b, 0x63, 0x7e, 0x08, 0x04},
        {0x00, 0x08, 0x08, 0x7e, 0x63, 0x7e, 0x60, 0x3e},
        {0x00, 0x08, 0x14, 0x63, 0x63, 0x7f, 0x63, 0x63},
        {0x00, 0x08, 0x14, 0x03, 0x03, 0x3f, 0x63, 0x63},
        {0x00, 0x36, 0x7f, 0x36, 0x3e, 0x36, 0x36, 0x36},
        {0x00, 0x06, 0x1f, 0x06, 0x3e, 0x66, 0x66, 0x66},
        {0x00, 0x28, 0x14, 0x7f, 0x1c, 0x1c, 0x1c, 0x7f},
        {0x00, 0x28, 0x14, 0x1e, 0x18, 0x18, 0x18, 0x7f},
        {0x00, 0x3e, 0x00, 0x7f, 0x1c, 0x1c, 0x1c, 0x7f},
        {0x00, 0x3e, 0x00, 0x1e, 0x18, 0x18, 0x18, 0x7f},
        {0x00, 0x14, 0x1c, 0x7f, 0x1c, 0x1c, 0x1c, 0x7f},
        {0x00, 0x14, 0x1c, 0x1e, 0x18, 0x18, 0x18, 0x7f},
        {0x00, 0x7f, 0x1c, 0x1c, 0x1c, 0x7f, 0x08, 0x10},
        {0x00, 0x1e, 0x18, 0x18, 0x18, 0x7f, 0x08, 0x10},
        {0x00, 0x18, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x7e},
        {0x00, 0x00, 0x00, 0x1e, 0x18, 0x18, 0x18, 0x7f},
        {0x00, 0x73, 0x63, 0x63, 0x63, 0x6b, 0x6b, 0x33},
        {0x00, 0x63, 0x00, 0x63, 0x63, 0x6b, 0x6b, 0x33},
        {0x00, 0x20, 0x50, 0x60, 0x60, 0x60, 0x63, 0x3e},
        {0x00, 0x20, 0x50, 0x00, 0x60, 0x60, 0x63, 0x3e},
        {0x00, 0x63, 0x33, 0x1f, 0x33, 0x63, 0x08, 0x04},
        {0x00, 0x00, 0x63, 0x33, 0x1f, 0x73, 0x08, 0x04},
        {0x00, 0x00, 0x00, 0x63, 0x33, 0x1f, 0x33, 0x63},
        {0x00, 0x10, 0x08, 0x03, 0x03, 0x03, 0x03, 0x7f},
        {0x00, 0x10, 0x08, 0x03, 0x03, 0x03, 0x07, 0x7c},
        {0x00, 0x03, 0x03, 0x03, 0x03, 0x7f, 0x08, 0x04},
        {0x00, 0x03, 0x03, 0x03, 0x07, 0x7c, 0x08, 0x04},
        {0x00, 0x63, 0x63, 0x43, 0x23, 0x03, 0x03, 0x7f},
        {0x00, 0x43, 0x43, 0x43, 0x03, 0x03, 0x0e, 0x78},
        {0x00, 0x03, 0x03, 0x03, 0x0b, 0x03, 0x03, 0x7f},
        {0x00, 0x03, 0x03, 0x03, 0x0b, 0x03, 0x0e, 0x78},
        {0x00, 0x06, 0x16, 0x0e, 0x06, 0x07, 0x06, 0x7e},
        {0x00, 0x06, 0x16, 0x0e, 0x06, 0x07, 0x0c, 0x78},
        {0x00, 0x10, 0x08, 0x63, 0x67, 0x6b, 0x73, 0x63},
        {0x00, 0x10, 0x08, 0x3f, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x63, 0x67, 0x6b, 0x73, 0x63, 0x08, 0x04},
        {0x00, 0x3f, 0x63, 0x63, 0x63, 0x63, 0x08, 0x04},
        {0x00, 0x14, 0x08, 0x63, 0x67, 0x6b, 0x73, 0x63},
        {0x00, 0x14, 0x08, 0x3f, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x03, 0x02, 0x3d, 0x6c, 0x6c, 0x6c, 0x6c},
        {0x00, 0x3b, 0x6f, 0x63, 0x63, 0x63, 0x6b, 0x3b},
        {0x00, 0x3f, 0x63, 0x63, 0x63, 0x63, 0x60, 0x38},
        {0x00, 0x3e, 0x00, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x3e, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x14, 0x1c, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x14, 0x1c, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x6c, 0x36, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x6c, 0x36, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x7e, 0x1b, 0x1b, 0x7b, 0x1b, 0x1b, 0x7e},
        {0x00, 0x00, 0x00, 0x3e, 0x6d, 0x7d, 0x0d, 0x3e},
        {0x00, 0x10, 0x08, 0x3f, 0x63, 0x3f, 0x1b, 0x73},
        {0x00, 0x10, 0x08, 0x3b, 0x67, 0x03, 0x03, 0x03},
        {0x00, 0x3f, 0x63, 0x3f, 0x1b, 0x73, 0x08, 0x04},
        {0x00, 0x3b, 0x67, 0x03, 0x03, 0x03, 0x08, 0x04},
        {0x00, 0x14, 0x08, 0x3f, 0x63, 0x3f, 0x1b, 0x73},
        {0x00, 0x14, 0x08, 0x3b, 0x67, 0x03, 0x03, 0x03},
        {0x00, 0x10, 0x08, 0x7f, 0x03, 0x7f, 0x60, 0x7f},
        {0x00, 0x10, 0x08, 0x3e, 0x03, 0x3e, 0x60, 0x3e},
        {0x00, 0x08, 0x14, 0x7f, 0x03, 0x7f, 0x60, 0x7f},
        {0x00, 0x08, 0x14, 0x3e, 0x03, 0x3e, 0x60, 0x3e},
        {0x00, 0x7f, 0x03, 0x7f, 0x60, 0x7f, 0x08, 0x04},
        {0x00, 0x3e, 0x03, 0x3e, 0x60, 0x3e, 0x08, 0x04},
        {0x00, 0x14, 0x08, 0x7f, 0x03, 0x7f, 0x60, 0x7f},
        {0x00, 0x14, 0x08, 0x3e, 0x03, 0x3e, 0x60, 0x3e},
        {0x00, 0x7f, 0x1c, 0x1c, 0x1c, 0x1c, 0x08, 0x04},
        {0x00, 0x0c, 0x7f, 0x0c, 0x0c, 0x7c, 0x08, 0x04},
        {0x00, 0x14, 0x08, 0x7f, 0x1c, 0x1c, 0x1c, 0x1c},
        {0x00, 0x4c, 0x4c, 0x5f, 0x0c, 0x0c, 0x0c, 0x7c},
        {0x00, 0x7e, 0x18, 0x18, 0x3c, 0x18, 0x18, 0x18},
        {0x00, 0x0c, 0x0c, 0x7f, 0x0c, 0x1e, 0x0c, 0x7c},
        {0x00, 0x28, 0x14, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x28, 0x14, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x3e, 0x00, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x3e, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x14, 0x1c, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x14, 0x1c, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x1c, 0x14, 0x5d, 0x41, 0x41, 0x63, 0x3e},
        {0x00, 0x1c, 0x14, 0x1c, 0x41, 0x41, 0x63, 0x3e},
        {0x00, 0x6c, 0x36, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x6c, 0x36, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x63, 0x63, 0x63, 0x63, 0x3e, 0x08, 0x10},
        {0x00, 0x00, 0x63, 0x63, 0x63, 0x3e, 0x10, 0x20},
        {0x00, 0x08, 0x14, 0x63, 0x6b, 0x7f, 0x77, 0x63},
        {0x00, 0x08, 0x14, 0x63, 0x6b, 0x6b, 0x7f, 0x36},
        {0x00, 0x08, 0x14, 0x63, 0x63, 0x3e, 0x1c, 0x1c},
        {0x00, 0x08, 0x14, 0x63, 0x63, 0x36, 0x1c, 0x0f},
        {0x00, 0x36, 0x00, 0x63, 0x63, 0x3e, 0x1c, 0x1c},
        {0x00, 0x10, 0x08, 0x7f, 0x38, 0x1c, 0x0e, 0x7f},
        {0x00, 0x10, 0x08, 0x00, 0x7f, 0x1c, 0x0e, 0x7f},
        {0x00, 0x08, 0x00, 0x7f, 0x38, 0x1c, 0x0e, 0x7f},
        {0x00, 0x00, 0x08, 0x00, 0x7f, 0x1c, 0x0e, 0x7f},
        {0x00, 0x14, 0x08, 0x7f, 0x38, 0x1c, 0x0e, 0x7f},
        {0x00, 0x14, 0x08, 0x00, 0x7f, 0x1c, 0x0e, 0x7f},
        {0x00, 0x78, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c},
        {0x00, 0x3f, 0x66, 0x66, 0x3e, 0x66, 0x66, 0x3e},
        {0x00, 0x3e, 0x63, 0x60, 0x60, 0x60, 0x63, 0x3e},
        {0x00, 0x1e, 0x36, 0x66, 0x6f, 0x66, 0x36, 0x1e},
        {0x00, 0x1f, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1e},
        {0x00, 0x7f, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x7f},
        {0x00, 0x1e, 0x33, 0x60, 0x7f, 0x63, 0x36, 0x1c},
        {0x00, 0x3e, 0x63, 0x06, 0x1c, 0x06, 0x63, 0x3e},
        {0x00, 0x7e, 0x06, 0x3e, 0x06, 0x06, 0x06, 0x07},
        {0x00, 0x70, 0x18, 0x7e, 0x18, 0x18, 0x0c, 0x07},
        {0x00, 0x7e, 0x43, 0x03, 0x7b, 0x63, 0x63, 0x7e},
        {0x00, 0x41, 0x63, 0x36, 0x1c, 0x1c, 0x36, 0x1c},
        {0x00, 0x7e, 0x18, 0x18, 0x3c, 0x18, 0x18, 0x7e},
        {0x00, 0x73, 0x5b, 0x0b, 0x0f, 0x1b, 0x33, 0x63},
        {0x00, 0x07, 0x03, 0x63, 0x33, 0x1f, 0x33, 0x63},
        {0x00, 0x66, 0x66, 0x6e, 0x7e, 0x76, 0x66, 0x67},
        {0x00, 0x5e, 0x73, 0x33, 0x33, 0x33, 0x33, 0x1e},
        {0x00, 0x00, 0x00, 0x5e, 0x73, 0x33, 0x33, 0x1e},
        {0x00, 0x40, 0x73, 0x33, 0x33, 0x33, 0x33, 0x1e},
        {0x00, 0x00, 0x40, 0x73, 0x33, 0x33, 0x33, 0x1e},
        {0x00, 0x3b, 0x73, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x73, 0x33, 0x33, 0x1e, 0x0c, 0x0c, 0x0c},
        {0x00, 0x00, 0x00, 0x73, 0x33, 0x16, 0x1c, 0x0f},
        {0x00, 0x3f, 0x30, 0x18, 0x38, 0x63, 0x63, 0x3e},
        {0x00, 0x7e, 0x06, 0x0c, 0x0e, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x7e, 0x04, 0x0e, 0x63, 0x3e},
        {0x00, 0x7f, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x7f},
        {0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77},
        {0x00, 0x1c, 0x1c, 0x7f, 0x1c, 0x7f, 0x1c, 0x1c},
        {0x00, 0x7f, 0x7f, 0x3e, 0x1c, 0x00, 0x1c, 0x1c},
        {0x00, 0x14, 0x08, 0x1c, 0x36, 0x63, 0x7f, 0x63},
        {0x00, 0x14, 0x08, 0x3e, 0x60, 0x7e, 0x63, 0x7e},
        {0x00, 0x14, 0x08, 0x7f, 0x1c, 0x1c, 0x1c, 0x7f},
        {0x00, 0x14, 0x08, 0x1e, 0x18, 0x18, 0x18, 0x7f},
        {0x00, 0x14, 0x08, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x14, 0x08, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x14, 0x08, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x14, 0x08, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x3e, 0x03, 0x3b, 0x33, 0x7b, 0x33, 0x3e},
        {0x00, 0x00, 0x3e, 0x33, 0x3e, 0x30, 0x7f, 0x1e},
        {0x00, 0x14, 0x08, 0x7e, 0x03, 0x7b, 0x63, 0x7e},
        {0x00, 0x14, 0x08, 0x7e, 0x63, 0x7e, 0x60, 0x3e},
        {0x00, 0x14, 0x08, 0x63, 0x33, 0x1f, 0x33, 0x63},
        {0x00, 0x14, 0x08, 0x00, 0x63, 0x33, 0x1f, 0x73},
        {0x00, 0x3e, 0x63, 0x63, 0x63, 0x3e, 0x10, 0x20},
        {0x00, 0x00, 0x3e, 0x63, 0x63, 0x3e, 0x10, 0x20},
        {0x00, 0x10, 0x08, 0x7e, 0x03, 0x7b, 0x63, 0x7e},
        {0x00, 0x10, 0x08, 0x7e, 0x63, 0x7e, 0x60, 0x3e},
        {0x00, 0x04, 0x08, 0x63, 0x67, 0x6b, 0x73, 0x63},
        {0x00, 0x04, 0x08, 0x3f, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x7f, 0x03, 0x7f, 0x60, 0x7f, 0x08, 0x08},
        {0x00, 0x3e, 0x03, 0x3e, 0x60, 0x3e, 0x08, 0x08},
        {0x00, 0x7f, 0x1c, 0x1c, 0x1c, 0x1c, 0x08, 0x08},
        {0x00, 0x0c, 0x7f, 0x0c, 0x0c, 0x7c, 0x08, 0x08},
        {0x00, 0x14, 0x08, 0x63, 0x63, 0x7f, 0x63, 0x63},
        {0x00, 0x14, 0x08, 0x03, 0x03, 0x3f, 0x63, 0x63},
        {0x00, 0x7f, 0x03, 0x1f, 0x03, 0x7f, 0x08, 0x04},
        {0x00, 0x3e, 0x63, 0x7f, 0x03, 0x3e, 0x08, 0x04},
        {0x00, 0x08, 0x00, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x08, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x3e, 0x00, 0x63, 0x63, 0x3e, 0x1c, 0x1c},
        {0x00, 0x3e, 0x00, 0x63, 0x63, 0x36, 0x1c, 0x0f},
        {0x00, 0x3e, 0x63, 0x60, 0x60, 0x3c, 0x0c, 0x0c},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x60, 0x3c, 0x0c},
        {0x00, 0x36, 0x36, 0x7f, 0x36, 0x36, 0x36, 0x1c},
        {0x00, 0x07, 0x03, 0x3f, 0x63, 0x63, 0x63, 0x3f},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x60, 0x63, 0x3e},
        {0x00, 0x30, 0x3e, 0x33, 0x33, 0x3e, 0x30, 0x70},
        {0x00, 0x70, 0x30, 0x3e, 0x33, 0x33, 0x33, 0x3e},
        {0x00, 0x00, 0x00, 0x3f, 0x60, 0x7f, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x0e, 0x63, 0x3e},
        {0x00, 0x00, 0x40, 0x7e, 0x63, 0x7e, 0x60, 0x3e},
        {0x00, 0x00, 0x00, 0x63, 0x36, 0x1c, 0x36, 0x1c},
        {0x00, 0x18, 0x00, 0x1e, 0x18, 0x3e, 0x18, 0x7f},
        {0x00, 0x00, 0x00, 0x3e, 0x66, 0x66, 0x66, 0x67},
        {0x00, 0x00, 0x08, 0x3e, 0x6b, 0x6b, 0x3e, 0x08},
        {0x00, 0x00, 0x00, 0x36, 0x7f, 0x36, 0x36, 0x1c},
        {0x00, 0x00, 0x00, 0x3b, 0x73, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x3f, 0x10, 0x38, 0x63, 0x3e},
        {0x00, 0x3e, 0x63, 0x60, 0x60, 0x3c, 0x0c, 0x0c},
        {0x00, 0x3e, 0x63, 0x03, 0x03, 0x1e, 0x18, 0x18},
        {0x00, 0x0c, 0x0c, 0x3c, 0x60, 0x60, 0x63, 0x3e},
        {0x00, 0x6b, 0x7f, 0x36, 0x00, 0x6b, 0x7f, 0x36},
        {0x00, 0x3e, 0x22, 0x22, 0x00, 0x3e, 0x22, 0x22},
        {0x00, 0x0c, 0x0c, 0x08, 0x04, 0x00, 0x00, 0x00},
        {0x00, 0x36, 0x36, 0x24, 0x12, 0x00, 0x00, 0x00},
        {0x00, 0x08, 0x04, 0x0c, 0x0c, 0x00, 0x00, 0x00},
        {0x00, 0x0c, 0x0c, 0x08, 0x04, 0x00, 0x00, 0x00},
        {0x00, 0x0c, 0x0c, 0x04, 0x08, 0x00, 0x00, 0x00},
        {0x00, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30},
        {0x00, 0x06, 0x0c, 0x18, 0x30, 0x18, 0x0c, 0x06},
        {0x00, 0x00, 0x08, 0x1c, 0x36, 0x63, 0x41, 0x00},
        {0x00, 0x00, 0x41, 0x63, 0x36, 0x1c, 0x08, 0x00},
        {0x00, 0x08, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x1c, 0x08, 0x00, 0x08, 0x1c},
        {0x00, 0x00, 0x00, 0x1c, 0x08, 0x00, 0x00, 0x00},
        {0x00, 0x14, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x1c, 0x14, 0x1c, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x40},
        {0x00, 0x28, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x6c, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x03, 0x03, 0x03, 0x7f, 0x03, 0x03, 0x03},
        {0x00, 0x00, 0x00, 0x0e, 0x0d, 0x7d, 0x0c, 0x0c},
        {0x00, 0x7f, 0x49, 0x49, 0x49, 0x08, 0x08, 0x08},
        {0x00, 0x3e, 0x2a, 0x2a, 0x08, 0x08, 0x08, 0x08},
        {0x00, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08},
        {0x00, 0x63, 0x73, 0x7b, 0x6b, 0x6f, 0x67, 0x63},
        {0x00, 0x00, 0x00, 0x11, 0x19, 0x1d, 0x57, 0x23},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x60, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x0b, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x68, 0x63, 0x3e},
        {0x00, 0x0c, 0x0c, 0x00, 0x0c, 0x0c, 0x08, 0x04},
        {0x00, 0x78, 0x60, 0x60, 0x60, 0x63, 0x63, 0x3e},
        {0x00, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x08, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x19, 0x3d, 0x66, 0x66, 0x7e, 0x66, 0x66},
        {0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x7d, 0x0d, 0x0c, 0x3c, 0x0c, 0x0c, 0x7c},
        {0x00, 0x6d, 0x6d, 0x6c, 0x7c, 0x6c, 0x6c, 0x6c},
        {0x00, 0x7d, 0x19, 0x18, 0x18, 0x18, 0x18, 0x7e},
        {0x00, 0x39, 0x6d, 0x6c, 0x6c, 0x6c, 0x6c, 0x38},
        {0x00, 0x6d, 0x6d, 0x6c, 0x38, 0x10, 0x10, 0x10},
        {0x00, 0x39, 0x6d, 0x6c, 0x6c, 0x6c, 0x28, 0x6c},
        {0x00, 0x08, 0x2a, 0x00, 0x1e, 0x18, 0x18, 0x78},
        {0x00, 0x1c, 0x36, 0x63, 0x63, 0x7f, 0x63, 0x63},
        {0x00, 0x3f, 0x63, 0x63, 0x3f, 0x63, 0x63, 0x3f},
        {0x00, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03},
        {0x00, 0x1c, 0x36, 0x36, 0x36, 0x63, 0x63, 0x7f},
        {0x00, 0x7f, 0x03, 0x03, 0x3f, 0x03, 0x03, 0x7f},
        {0x00, 0x7f, 0x70, 0x38, 0x1c, 0x0e, 0x07, 0x7f},
        {0x00, 0x63, 0x63, 0x63, 0x7f, 0x63, 0x63, 0x63},
        {0x00, 0x3e, 0x63, 0x41, 0x5d, 0x41, 0x63, 0x3e},
        {0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e},
        {0x00, 0x63, 0x33, 0x1b, 0x0f, 0x1b, 0x33, 0x63},
        {0x00, 0x1c, 0x1c, 0x36, 0x36, 0x63, 0x63, 0x63},
        {0x00, 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63},
        {0x00, 0x63, 0x67, 0x6f, 0x7b, 0x73, 0x63, 0x63},
        {0x00, 0x7f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x7f},
        {0x00, 0x3e, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x7f, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x3f, 0x63, 0x63, 0x3f, 0x03, 0x03, 0x03},
        {0x00, 0x7f, 0x06, 0x0c, 0x18, 0x0c, 0x06, 0x7f},
        {0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18},
        {0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18},
        {0x00, 0x08, 0x3e, 0x6b, 0x6b, 0x6b, 0x3e, 0x08},
        {0x00, 0x63, 0x77, 0x3e, 0x1c, 0x3e, 0x77, 0x63},
        {0x00, 0x6b, 0x6b, 0x6b, 0x3e, 0x1c, 0x08, 0x08},
        {0x00, 0x3e, 0x63, 0x63, 0x63, 0x63, 0x36, 0x77},
        {0x00, 0x36, 0x00, 0x7f, 0x1c, 0x1c, 0x1c, 0x7f},
        {0x00, 0x36, 0x00, 0x63, 0x63, 0x3e, 0x1c, 0x1c},
        {0x00, 0x10, 0x08, 0x00, 0x5e, 0x63, 0x63, 0x5e},
        {0x00, 0x10, 0x08, 0x3e, 0x63, 0x0e, 0x63, 0x3e},
        {0x00, 0x10, 0x08, 0x00, 0x3f, 0x63, 0x63, 0x60},
        {0x00, 0x10, 0x08, 0x00, 0x1e, 0x18, 0x18, 0x78},
        {0x00, 0x08, 0x2a, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x5e, 0x63, 0x63, 0x63, 0x5e},
        {0x00, 0x3e, 0x63, 0x3b, 0x63, 0x63, 0x3f, 0x03},
        {0x00, 0x00, 0x00, 0x63, 0x63, 0x3e, 0x1c, 0x1c},
        {0x00, 0x3f, 0x06, 0x0c, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x0e, 0x63, 0x3e},
        {0x00, 0x1f, 0x18, 0x0e, 0x03, 0x3f, 0x60, 0x38},
        {0x00, 0x00, 0x00, 0x3f, 0x63, 0x63, 0x63, 0x60},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x7f, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x1e, 0x18, 0x18, 0x18, 0x78},
        {0x00, 0x00, 0x00, 0x63, 0x33, 0x1f, 0x33, 0x63},
        {0x00, 0x03, 0x06, 0x0c, 0x1c, 0x36, 0x63, 0x63},
        {0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x3f, 0x03},
        {0x00, 0x00, 0x00, 0x63, 0x63, 0x36, 0x1c, 0x08},
        {0x00, 0x1e, 0x03, 0x0e, 0x03, 0x3e, 0x60, 0x30},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x7f, 0x36, 0x36, 0x36, 0x36},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x63, 0x3f, 0x03},
        {0x00, 0x00, 0x00, 0x7e, 0x03, 0x3e, 0x60, 0x38},
        {0x00, 0x00, 0x00, 0x7e, 0x33, 0x33, 0x33, 0x1e},
        {0x00, 0x00, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18},
        {0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x3a, 0x6b, 0x6b, 0x3e, 0x08},
        {0x00, 0x00, 0x00, 0x77, 0x3e, 0x1c, 0x3e, 0x77},
        {0x00, 0x00, 0x00, 0x6b, 0x6b, 0x3e, 0x08, 0x08},
        {0x00, 0x00, 0x00, 0x22, 0x6b, 0x6b, 0x3e, 0x14},
        {0x00, 0x36, 0x00, 0x1e, 0x18, 0x18, 0x18, 0x78},
        {0x00, 0x00, 0x36, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x10, 0x08, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x10, 0x08, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x10, 0x08, 0x22, 0x6b, 0x6b, 0x3e, 0x14},
        {0x00, 0x63, 0x33, 0x1f, 0x33, 0x63, 0x40, 0x20},
        {0x00, 0x1c, 0x36, 0x1f, 0x03, 0x3f, 0x66, 0x3c},
        {0x00, 0x38, 0x6c, 0x6c, 0x78, 0x63, 0x32, 0x1e},
        {0x00, 0x73, 0x33, 0x33, 0x1e, 0x0c, 0x0c, 0x0c},
        {0x00, 0x6a, 0x29, 0x28, 0x38, 0x10, 0x10, 0x10},
        {0x00, 0x36, 0x00, 0x73, 0x33, 0x1e, 0x0c, 0x0c},
        {0x00, 0x00, 0x08, 0x3e, 0x6b, 0x6b, 0x3e, 0x08},
        {0x00, 0x00, 0x00, 0x7f, 0x22, 0x49, 0x49, 0x36},
        {0x00, 0x66, 0x34, 0x1c, 0x16, 0x73, 0x40, 0x20},
        {0x00, 0x3e, 0x63, 0x63, 0x63, 0x63, 0x3e, 0x08},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x63, 0x3e, 0x08},
        {0x00, 0x3e, 0x63, 0x03, 0x03, 0x1e, 0x18, 0x18},
        {0x00, 0x00, 0x00, 0x3e, 0x43, 0x1e, 0x30, 0x1e},
        {0x00, 0x7f, 0x03, 0x03, 0x3f, 0x23, 0x03, 0x03},
        {0x00, 0x3e, 0x06, 0x06, 0x1e, 0x16, 0x06, 0x06},
        {0x00, 0x01, 0x22, 0x32, 0x2a, 0x26, 0x22, 0x40},
        {0x00, 0x0c, 0x06, 0x03, 0x7f, 0x60, 0x30, 0x18},
        {0x00, 0x0f, 0x12, 0x32, 0x28, 0x44, 0x44, 0x30},
        {0x00, 0x03, 0x0c, 0x18, 0x34, 0x2a, 0x44, 0x40},
        {0x00, 0x6b, 0x6b, 0x6b, 0x6b, 0x76, 0x40, 0x3f},
        {0x00, 0x00, 0x00, 0x6b, 0x6b, 0x76, 0x40, 0x3f},
        {0x00, 0x6e, 0x63, 0x63, 0x7e, 0x60, 0x60, 0x60},
        {0x00, 0x6e, 0x63, 0x63, 0x63, 0x7e, 0x60, 0x60},
        {0x00, 0x03, 0x03, 0x3f, 0x63, 0x63, 0x60, 0x3f},
        {0x00, 0x5c, 0x36, 0x3b, 0x6e, 0x60, 0x36, 0x1d},
        {0x00, 0x3e, 0x63, 0x60, 0x3e, 0x03, 0x63, 0x3e},
        {0x00, 0x3e, 0x63, 0x60, 0x3e, 0x03, 0x03, 0x7e},
        {0x00, 0x36, 0x49, 0x08, 0x14, 0x22, 0x41, 0x7f},
        {0x00, 0x00, 0x00, 0x36, 0x49, 0x14, 0x22, 0x3e},
        {0x00, 0x7e, 0x03, 0x3f, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x7e, 0x03, 0x3b, 0x63, 0x3e},
        {0x00, 0x08, 0x08, 0x3e, 0x49, 0x08, 0x08, 0x08},
        {0x00, 0x18, 0x08, 0x7f, 0x09, 0x08, 0x08, 0x0c},
        {0x00, 0x00, 0x00, 0x66, 0x34, 0x1c, 0x16, 0x33},
        {0x00, 0x3c, 0x66, 0x66, 0x3e, 0x06, 0x3c, 0x40},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x03, 0x63, 0x3e},
        {0x00, 0x60, 0x00, 0x60, 0x60, 0x60, 0x63, 0x3e},
        {0x00, 0x3e, 0x63, 0x63, 0x7f, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x7e, 0x03, 0x1f, 0x03, 0x7e},
        {0x00, 0x00, 0x00, 0x3f, 0x60, 0x7c, 0x60, 0x3f},
        {0x00, 0x03, 0x3f, 0x63, 0x63, 0x63, 0x3f, 0x03},
        {0x00, 0x03, 0x03, 0x3f, 0x63, 0x3f, 0x03, 0x03},
        {0x00, 0x3e, 0x63, 0x03, 0x03, 0x03, 0x63, 0x3e},
        {0x00, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x00, 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x03},
        {0x00, 0x3c, 0x66, 0x66, 0x3e, 0x06, 0x0f, 0x06},
        {0x00, 0x3e, 0x63, 0x60, 0x60, 0x60, 0x63, 0x3e},
        {0x00, 0x3e, 0x63, 0x03, 0x0b, 0x03, 0x63, 0x3e},
        {0x00, 0x3e, 0x63, 0x60, 0x68, 0x60, 0x63, 0x3e},
        {0x00, 0x04, 0x08, 0x7f, 0x03, 0x3f, 0x03, 0x7f},
        {0x00, 0x36, 0x00, 0x7f, 0x03, 0x3f, 0x03, 0x7f},
        {0x00, 0x1f, 0x06, 0x3e, 0x66, 0x66, 0x66, 0x36},
        {0x00, 0x10, 0x08, 0x7f, 0x03, 0x03, 0x03, 0x03},
        {0x00, 0x3e, 0x63, 0x03, 0x0f, 0x03, 0x63, 0x3e},
        {0x00, 0x3e, 0x63, 0x03, 0x3e, 0x60, 0x63, 0x3e},
        {0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e},
        {0x00, 0x36, 0x00, 0x7f, 0x1c, 0x1c, 0x1c, 0x7f},
        {0x00, 0x78, 0x60, 0x60, 0x60, 0x63, 0x63, 0x3e},
        {0x00, 0x1f, 0x1b, 0x1b, 0x3b, 0x5b, 0x5b, 0x3b},
        {0x00, 0x1b, 0x1b, 0x1b, 0x3f, 0x5b, 0x5b, 0x3b},
        {0x00, 0x1f, 0x06, 0x3e, 0x66, 0x66, 0x66, 0x66},
        {0x00, 0x10, 0x08, 0x63, 0x33, 0x1f, 0x33, 0x63},
        {0x00, 0x04, 0x08, 0x63, 0x73, 0x7b, 0x6f, 0x67},
        {0x00, 0x14, 0x08, 0x63, 0x36, 0x3c, 0x18, 0x0f},
        {0x00, 0x63, 0x63, 0x63, 0x63, 0x7f, 0x1c, 0x1c},
        {0x00, 0x1c, 0x36, 0x63, 0x63, 0x7f, 0x63, 0x63},
        {0x00, 0x3f, 0x03, 0x03, 0x3f, 0x63, 0x63, 0x3f},
        {0x00, 0x3f, 0x63, 0x63, 0x3f, 0x63, 0x63, 0x3f},
        {0x00, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03},
        {0x00, 0x3e, 0x36, 0x36, 0x36, 0x36, 0x7f, 0x63},
        {0x00, 0x7f, 0x03, 0x03, 0x3f, 0x03, 0x03, 0x7f},
        {0x00, 0x6b, 0x6b, 0x3e, 0x1c, 0x3e, 0x6b, 0x6b},
        {0x00, 0x3e, 0x63, 0x60, 0x38, 0x60, 0x63, 0x3e},
        {0x00, 0x63, 0x73, 0x7b, 0x6b, 0x6f, 0x67, 0x63},
        {0x00, 0x14, 0x08, 0x63, 0x73, 0x7b, 0x6f, 0x67},
        {0x00, 0x63, 0x33, 0x1b, 0x0f, 0x1b, 0x33, 0x63},
        {0x00, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x63},
        {0x00, 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63},
        {0x00, 0x63, 0x63, 0x63, 0x7f, 0x63, 0x63, 0x63},
        {0x00, 0x3e, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x7f, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x3f, 0x63, 0x63, 0x3f, 0x03, 0x03, 0x03},
        {0x00, 0x3e, 0x63, 0x03, 0x03, 0x03, 0x63, 0x3e},
        {0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18},
        {0x00, 0x63, 0x63, 0x36, 0x3c, 0x18, 0x0c, 0x07},
        {0x00, 0x08, 0x3e, 0x6b, 0x6b, 0x6b, 0x3e, 0x08},
        {0x00, 0x63, 0x77, 0x3e, 0x1c, 0x3e, 0x77, 0x63},
        {0x00, 0x33, 0x33, 0x33, 0x33, 0x33, 0x7f, 0x60},
        {0x00, 0x63, 0x63, 0x63, 0x7f, 0x60, 0x60, 0x60},
        {0x00, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x7f},
        {0x00, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x7f, 0x60},
        {0x00, 0x07, 0x06, 0x3e, 0x66, 0x66, 0x66, 0x3e},
        {0x00, 0x63, 0x63, 0x63, 0x67, 0x6b, 0x6b, 0x67},
        {0x00, 0x03, 0x03, 0x03, 0x3f, 0x63, 0x63, 0x3f},
        {0x00, 0x3e, 0x63, 0x60, 0x78, 0x60, 0x63, 0x3e},
        {0x00, 0x39, 0x6d, 0x6d, 0x6f, 0x6d, 0x6d, 0x39},
        {0x00, 0x7e, 0x63, 0x63, 0x7e, 0x6c, 0x66, 0x63},
        {0x00, 0x00, 0x00, 0x3e, 0x60, 0x7e, 0x63, 0x7e},
        {0x00, 0x3e, 0x03, 0x3f, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x3f, 0x63, 0x3f, 0x63, 0x3f},
        {0x00, 0x00, 0x00, 0x7f, 0x03, 0x03, 0x03, 0x03},
        {0x00, 0x00, 0x00, 0x3e, 0x36, 0x36, 0x7f, 0x63},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x00, 0x00, 0x6b, 0x6b, 0x3e, 0x6b, 0x6b},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x38, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x63, 0x73, 0x7b, 0x6f, 0x67},
        {0x00, 0x14, 0x08, 0x00, 0x73, 0x7b, 0x6f, 0x67},
        {0x00, 0x00, 0x00, 0x63, 0x33, 0x1f, 0x33, 0x63},
        {0x00, 0x00, 0x00, 0x7e, 0x66, 0x66, 0x66, 0x63},
        {0x00, 0x00, 0x00, 0x63, 0x77, 0x7f, 0x6b, 0x63},
        {0x00, 0x00, 0x00, 0x63, 0x63, 0x7f, 0x63, 0x63},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x7f, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x00, 0x00, 0x3f, 0x63, 0x3f, 0x03, 0x03},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x03, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18},
        {0x00, 0x00, 0x00, 0x63, 0x36, 0x3c, 0x18, 0x0f},
        {0x00, 0x00, 0x08, 0x3e, 0x6b, 0x6b, 0x3e, 0x08},
        {0x00, 0x00, 0x00, 0x77, 0x3e, 0x1c, 0x3e, 0x77},
        {0x00, 0x00, 0x00, 0x33, 0x33, 0x33, 0x7f, 0x60},
        {0x00, 0x00, 0x00, 0x63, 0x63, 0x7f, 0x60, 0x60},
        {0x00, 0x00, 0x00, 0x6b, 0x6b, 0x6b, 0x6b, 0x7f},
        {0x00, 0x00, 0x00, 0x6b, 0x6b, 0x6b, 0x7f, 0x60},
        {0x00, 0x00, 0x00, 0x07, 0x06, 0x3e, 0x66, 0x3e},
        {0x00, 0x00, 0x00, 0x63, 0x63, 0x67, 0x6b, 0x67},
        {0x00, 0x00, 0x00, 0x03, 0x03, 0x3f, 0x63, 0x3f},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x78, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x39, 0x6d, 0x6f, 0x6d, 0x39},
        {0x00, 0x00, 0x00, 0x7e, 0x63, 0x7e, 0x6c, 0x66},
        {0x00, 0x04, 0x08, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x36, 0x00, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x0f, 0x06, 0x3e, 0x66, 0x66, 0x66, 0x30},
        {0x00, 0x10, 0x08, 0x00, 0x7f, 0x03, 0x03, 0x03},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x0f, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x7e, 0x03, 0x7f, 0x60, 0x3f},
        {0x00, 0x18, 0x00, 0x1e, 0x18, 0x18, 0x18, 0x7f},
        {0x00, 0x36, 0x00, 0x1e, 0x18, 0x18, 0x18, 0x7f},
        {0x00, 0x60, 0x00, 0x60, 0x60, 0x60, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x1f, 0x1b, 0x3b, 0x5b, 0x3b},
        {0x00, 0x00, 0x00, 0x1b, 0x1b, 0x3f, 0x5b, 0x3b},
        {0x00, 0x06, 0x0f, 0x06, 0x3e, 0x66, 0x66, 0x66},
        {0x00, 0x10, 0x08, 0x00, 0x63, 0x33, 0x1f, 0x73},
        {0x00, 0x04, 0x08, 0x00, 0x73, 0x7b, 0x6f, 0x67},
        {0x00, 0x14, 0x08, 0x00, 0x36, 0x3c, 0x18, 0x0f},
        {0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x7f, 0x1c},
        {0x00, 0x40, 0x7f, 0x03, 0x03, 0x03, 0x03, 0x03},
        {0x00, 0x00, 0x40, 0x7f, 0x03, 0x03, 0x03, 0x03},
        {0x00, 0x7e, 0x06, 0x06, 0x1f, 0x06, 0x06, 0x06},
        {0x00, 0x00, 0x00, 0x7e, 0x06, 0x1f, 0x06, 0x06},
        {0x00, 0x6b, 0x3e, 0x1c, 0x3e, 0x6b, 0x6b, 0x40},
        {0x00, 0x00, 0x6b, 0x6b, 0x3e, 0x6b, 0x6b, 0x40},
        {0x00, 0x3e, 0x63, 0x38, 0x63, 0x3e, 0x08, 0x0c},
        {0x00, 0x3e, 0x60, 0x38, 0x60, 0x3e, 0x08, 0x0c},
        {0x00, 0x73, 0x1b, 0x0f, 0x1b, 0x33, 0x63, 0x40},
        {0x00, 0x00, 0x63, 0x33, 0x1f, 0x33, 0x63, 0x40},
        {0x00, 0x67, 0x36, 0x1e, 0x0e, 0x1e, 0x36, 0x66},
        {0x00, 0x00, 0x00, 0x67, 0x36, 0x1e, 0x36, 0x66},
        {0x00, 0x33, 0x33, 0x3f, 0x33, 0x33, 0x73, 0x40},
        {0x00, 0x00, 0x33, 0x33, 0x3f, 0x33, 0x73, 0x40},
        {0x00, 0x3e, 0x63, 0x03, 0x63, 0x3e, 0x08, 0x0c},
        {0x00, 0x00, 0x3e, 0x03, 0x03, 0x3e, 0x08, 0x0c},
        {0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18},
        {0x00, 0x00, 0x00, 0x66, 0x66, 0x3c, 0x18, 0x18},
        {0x00, 0x63, 0x63, 0x63, 0x36, 0x1c, 0x7f, 0x1c},
        {0x00, 0x00, 0x00, 0x63, 0x36, 0x1c, 0x7f, 0x1c},
        {0x00, 0x77, 0x3e, 0x1c, 0x3e, 0x77, 0x63, 0x40},
        {0x00, 0x00, 0x77, 0x3e, 0x1c, 0x3e, 0x77, 0x40},
        {0x00, 0x03, 0x03, 0x3f, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x00, 0x03, 0x03, 0x3f, 0x63, 0x63, 0x63},
        {0x00, 0x14, 0x1c, 0x6b, 0x6b, 0x3e, 0x6b, 0x6b},
        {0x00, 0x14, 0x1c, 0x00, 0x6b, 0x3e, 0x6b, 0x6b},
        {0x00, 0x14, 0x1c, 0x1c, 0x36, 0x63, 0x7f, 0x63},
        {0x00, 0x14, 0x1c, 0x3e, 0x60, 0x7e, 0x63, 0x7e},
        {0x00, 0x14, 0x1c, 0x7f, 0x03, 0x1f, 0x03, 0x7f},
        {0x00, 0x14, 0x1c, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x1e, 0x33, 0x60, 0x7f, 0x63, 0x36, 0x1c},
        {0x00, 0x00, 0x00, 0x3f, 0x60, 0x7f, 0x63, 0x3e},
        {0x00, 0x3e, 0x63, 0x63, 0x7f, 0x63, 0x63, 0x3e},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x7f, 0x63, 0x3e},
        {0x00, 0x14, 0x14, 0x63, 0x36, 0x3c, 0x18, 0x0f},
        {0x00, 0x14, 0x14, 0x00, 0x36, 0x3c, 0x18, 0x0f},
        {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08},
        {0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x0c, 0x0c},
        {0x00, 0x7c, 0x06, 0x03, 0x03, 0x03, 0x03, 0x7f},
        {0x00, 0x43, 0x46, 0x6c, 0x3e, 0x1b, 0x31, 0x61},
        {0x00, 0x0f, 0x18, 0x30, 0x30, 0x30, 0x30, 0x7f},
        {0x00, 0x0f, 0x18, 0x30, 0x30, 0x3e, 0x33, 0x63},
        {0x00, 0x7f, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30},
        {0x00, 0x1f, 0x30, 0x60, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c},
        {0x00, 0x7f, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c},
        {0x00, 0x1f, 0x33, 0x63, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x33, 0x6b, 0x63, 0x63, 0x63, 0x36, 0x1c},
        {0x00, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x00},
        {0x00, 0x1e, 0x31, 0x60, 0x60, 0x60, 0x60, 0x60},
        {0x00, 0x1f, 0x30, 0x60, 0x60, 0x60, 0x30, 0x1f},
        {0x00, 0x03, 0x03, 0x7f, 0x60, 0x30, 0x18, 0x18},
        {0x00, 0x1f, 0x33, 0x63, 0x63, 0x63, 0x63, 0x7f},
        {0x00, 0x19, 0x3f, 0x66, 0x63, 0x63, 0x63, 0x7b},
        {0x00, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c},
        {0x00, 0x1f, 0x30, 0x60, 0x60, 0x60, 0x60, 0x7f},
        {0x00, 0x3e, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x63, 0x63, 0x63, 0x66, 0x66, 0x3c, 0x0f},
        {0x00, 0x1f, 0x33, 0x63, 0x66, 0x60, 0x60, 0x60},
        {0x00, 0x1f, 0x33, 0x63, 0x66, 0x60, 0x30, 0x1f},
        {0x00, 0x63, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x18},
        {0x00, 0x31, 0x33, 0x1e, 0x0c, 0x18, 0x30, 0x7f},
        {0x00, 0x7f, 0x60, 0x30, 0x1b, 0x1b, 0x03, 0x03},
        {0x00, 0x1f, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60},
        {0x00, 0x6b, 0x6b, 0x6b, 0x67, 0x63, 0x36, 0x1c},
        {0x00, 0x1f, 0x36, 0x66, 0x66, 0x66, 0x66, 0x63},
        {0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36},
        {0x00, 0x36, 0x36, 0x36, 0x36, 0x30, 0x30, 0x30},
        {0x00, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00},
        {0x00, 0x0c, 0x0c, 0x08, 0x04, 0x00, 0x00, 0x00},
        {0x00, 0x36, 0x36, 0x24, 0x12, 0x00, 0x00, 0x00},
        {0x00, 0x08, 0x00, 0x3f, 0x63, 0x3f, 0x63, 0x3f},
        {0x00, 0x0b, 0x03, 0x3f, 0x63, 0x63, 0x63, 0x3f},
        {0x00, 0x04, 0x00, 0x1f, 0x33, 0x63, 0x33, 0x1f},
        {0x00, 0x68, 0x60, 0x7e, 0x63, 0x63, 0x63, 0x7e},
        {0x00, 0x1f, 0x33, 0x63, 0x33, 0x1f, 0x00, 0x04},
        {0x00, 0x60, 0x7e, 0x63, 0x63, 0x7e, 0x00, 0x08},
        {0x00, 0x1f, 0x33, 0x63, 0x33, 0x1f, 0x04, 0x02},
        {0x00, 0x60, 0x7e, 0x63, 0x63, 0x7e, 0x08, 0x04},
        {0x00, 0x08, 0x00, 0x7f, 0x03, 0x1f, 0x03, 0x03},
        {0x00, 0x08, 0x00, 0x3c, 0x0c, 0x7f, 0x0c, 0x0c},
        {0x00, 0x63, 0x63, 0x7f, 0x63, 0x63, 0x00, 0x08},
        {0x00, 0x03, 0x03, 0x3f, 0x63, 0x63, 0x00, 0x08},
        {0x00, 0x36, 0x00, 0x63, 0x63, 0x7f, 0x63, 0x63},
        {0x00, 0x36, 0x00, 0x03, 0x03, 0x3f, 0x63, 0x63},
        {0x00, 0x63, 0x63, 0x7f, 0x63, 0x63, 0x08, 0x04},
        {0x00, 0x03, 0x03, 0x3f, 0x63, 0x63, 0x08, 0x04},
        {0x00, 0x10, 0x08, 0x63, 0x33, 0x1f, 0x33, 0x63},
        {0x00, 0x10, 0x08, 0x00, 0x63, 0x33, 0x1f, 0x73},
        {0x00, 0x03, 0x03, 0x03, 0x03, 0x7f, 0x00, 0x08},
        {0x00, 0x03, 0x03, 0x03, 0x07, 0x7c, 0x00, 0x08},
        {0x00, 0x03, 0x03, 0x03, 0x03, 0x7f, 0x00, 0x3e},
        {0x00, 0x03, 0x03, 0x03, 0x07, 0x7c, 0x00, 0x3e},
        {0x00, 0x10, 0x08, 0x63, 0x77, 0x7f, 0x6b, 0x63},
        {0x00, 0x10, 0x08, 0x3f, 0x6b, 0x6b, 0x6b, 0x6b},
        {0x00, 0x08, 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63},
        {0x00, 0x08, 0x00, 0x3f, 0x6b, 0x6b, 0x6b, 0x6b},
        {0x00, 0x08, 0x00, 0x63, 0x67, 0x6b, 0x73, 0x63},
        {0x00, 0x08, 0x00, 0x3f, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x63, 0x67, 0x6b, 0x73, 0x63, 0x00, 0x3e},
        {0x00, 0x3f, 0x63, 0x63, 0x63, 0x63, 0x00, 0x3e},
        {0x00, 0x10, 0x08, 0x3f, 0x63, 0x3f, 0x03, 0x03},
        {0x00, 0x10, 0x08, 0x00, 0x3f, 0x63, 0x3f, 0x03},
        {0x00, 0x08, 0x00, 0x3f, 0x63, 0x3f, 0x03, 0x03},
        {0x00, 0x00, 0x08, 0x00, 0x3f, 0x63, 0x3f, 0x03},
        {0x00, 0x3f, 0x63, 0x3f, 0x1b, 0x73, 0x00, 0x08},
        {0x00, 0x3b, 0x67, 0x03, 0x03, 0x03, 0x00, 0x08},
        {0x00, 0x08, 0x00, 0x7f, 0x03, 0x7f, 0x60, 0x7f},
        {0x00, 0x08, 0x00, 0x3e, 0x03, 0x3e, 0x60, 0x3e},
        {0x00, 0x7f, 0x03, 0x7f, 0x60, 0x7f, 0x00, 0x08},
        {0x00, 0x3e, 0x03, 0x3e, 0x60, 0x3e, 0x00, 0x08},
        {0x00, 0x08, 0x00, 0x7f, 0x1c, 0x1c, 0x1c, 0x1c},
        {0x00, 0x08, 0x00, 0x0c, 0x7f, 0x0c, 0x0c, 0x7c},
        {0x00, 0x7f, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x08},
        {0x00, 0x0c, 0x7f, 0x0c, 0x0c, 0x7c, 0x00, 0x08},
        {0x00, 0x28, 0x14, 0x63, 0x63, 0x36, 0x1c, 0x08},
        {0x00, 0x28, 0x14, 0x00, 0x63, 0x36, 0x1c, 0x08},
        {0x00, 0x04, 0x08, 0x63, 0x6b, 0x7f, 0x77, 0x63},
        {0x00, 0x04, 0x08, 0x63, 0x6b, 0x6b, 0x7f, 0x36},
        {0x00, 0x10, 0x08, 0x63, 0x6b, 0x7f, 0x77, 0x63},
        {0x00, 0x10, 0x08, 0x63, 0x6b, 0x6b, 0x7f, 0x36},
        {0x00, 0x36, 0x00, 0x63, 0x6b, 0x7f, 0x77, 0x63},
        {0x00, 0x36, 0x00, 0x63, 0x6b, 0x6b, 0x7f, 0x36},
        {0x00, 0x08, 0x14, 0x7f, 0x38, 0x1c, 0x0e, 0x7f},
        {0x00, 0x08, 0x14, 0x00, 0x7f, 0x1c, 0x0e, 0x7f},
        {0x00, 0x7f, 0x38, 0x1c, 0x0e, 0x7f, 0x00, 0x08},
        {0x00, 0x7f, 0x1c, 0x0e, 0x7f, 0x00, 0x00, 0x08},
        {0x00, 0x20, 0x00, 0x78, 0x0c, 0x0c, 0x0c, 0x0c},
        {0x00, 0x78, 0x0c, 0x0c, 0x0c, 0x1e, 0x0c, 0x0c},
        {0x00, 0x78, 0x0c, 0x1e, 0x0c, 0x0c, 0x0c, 0x0c},
        {0x00, 0x3c, 0x66, 0x33, 0x3b, 0x63, 0x63, 0x3b},
        {0x00, 0x1c, 0x36, 0x63, 0x7f, 0x63, 0x00, 0x08},
        {0x00, 0x3e, 0x60, 0x7e, 0x63, 0x7e, 0x00, 0x08},
        {0x00, 0x7f, 0x03, 0x1f, 0x03, 0x7f, 0x00, 0x08},
        {0x00, 0x3e, 0x63, 0x7f, 0x03, 0x3e, 0x00, 0x08},
        {0x00, 0x28, 0x14, 0x7f, 0x03, 0x1f, 0x03, 0x7f},
        {0x00, 0x28, 0x14, 0x3e, 0x63, 0x7f, 0x03, 0x3e},
        {0x00, 0x0c, 0x08, 0x00, 0x7f, 0x1c, 0x1c, 0x7f},
        {0x00, 0x0c, 0x08, 0x00, 0x1e, 0x18, 0x18, 0x7f},
        {0x00, 0x7f, 0x1c, 0x1c, 0x1c, 0x7f, 0x00, 0x08},
        {0x00, 0x1e, 0x18, 0x18, 0x18, 0x7f, 0x00, 0x08},
        {0x00, 0x3e, 0x63, 0x63, 0x63, 0x3e, 0x00, 0x08},
        {0x00, 0x00, 0x3e, 0x63, 0x63, 0x3e, 0x00, 0x08},
        {0x00, 0x08, 0x04, 0x5e, 0x73, 0x33, 0x33, 0x1e},
        {0x00, 0x08, 0x04, 0x00, 0x5e, 0x73, 0x33, 0x1e},
        {0x00, 0x04, 0x08, 0x5e, 0x73, 0x33, 0x33, 0x1e},
        {0x00, 0x04, 0x08, 0x00, 0x5e, 0x73, 0x33, 0x1e},
        {0x00, 0x28, 0x14, 0x5e, 0x73, 0x33, 0x33, 0x1e},
        {0x00, 0x28, 0x14, 0x00, 0x5e, 0x73, 0x33, 0x1e},
        {0x00, 0x63, 0x63, 0x63, 0x63, 0x3e, 0x00, 0x08},
        {0x00, 0x00, 0x63, 0x63, 0x63, 0x3e, 0x00, 0x08},
        {0x00, 0x0c, 0x08, 0x63, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x0c, 0x08, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x08, 0x44, 0x73, 0x33, 0x33, 0x33, 0x1e},
        {0x00, 0x08, 0x04, 0x40, 0x73, 0x33, 0x33, 0x1e},
        {0x00, 0x04, 0x48, 0x73, 0x33, 0x33, 0x33, 0x1e},
        {0x00, 0x04, 0x08, 0x40, 0x73, 0x33, 0x33, 0x1e},
        {0x00, 0x28, 0x14, 0x40, 0x73, 0x33, 0x33, 0x1e},
        {0x00, 0x28, 0x14, 0x00, 0x40, 0x73, 0x33, 0x1e},
        {0x00, 0x04, 0x08, 0x63, 0x63, 0x3e, 0x1c, 0x1c},
        {0x00, 0x04, 0x08, 0x63, 0x63, 0x36, 0x1c, 0x0f},
        {0x00, 0x63, 0x63, 0x3e, 0x1c, 0x1c, 0x00, 0x08},
        {0x00, 0x00, 0x00, 0x63, 0x63, 0x36, 0x1c, 0x4f},
        {0x00, 0x0c, 0x08, 0x63, 0x63, 0x3e, 0x1c, 0x1c},
        {0x00, 0x0c, 0x08, 0x63, 0x63, 0x36, 0x1c, 0x0f},
        {0x00, 0x28, 0x14, 0x63, 0x63, 0x3e, 0x1c, 0x1c},
        {0x00, 0x28, 0x14, 0x63, 0x63, 0x36, 0x1c, 0x0f},
        {0x00, 0x0c, 0x08, 0x00, 0x5e, 0x63, 0x63, 0x5e},
        {0x00, 0x26, 0x14, 0x00, 0x5e, 0x63, 0x63, 0x5e},
        {0x00, 0x26, 0x12, 0x00, 0x5e, 0x63, 0x63, 0x5e},
        {0x00, 0x13, 0x3a, 0x6c, 0x6c, 0x7c, 0x6c, 0x6c},
        {0x00, 0x0c, 0x08, 0x3e, 0x63, 0x0e, 0x63, 0x3e},
        {0x00, 0x18, 0x08, 0x3e, 0x63, 0x0e, 0x63, 0x3e},
        {0x00, 0x26, 0x14, 0x3e, 0x63, 0x0e, 0x63, 0x3e},
        {0x00, 0x2c, 0x14, 0x3e, 0x63, 0x0e, 0x63, 0x3e},
        {0x00, 0x7b, 0x1a, 0x18, 0x78, 0x18, 0x18, 0x78},
        {0x00, 0x0c, 0x08, 0x00, 0x3f, 0x63, 0x63, 0x60},
        {0x00, 0x18, 0x08, 0x00, 0x3f, 0x63, 0x63, 0x60},
        {0x00, 0x16, 0x24, 0x00, 0x3f, 0x63, 0x63, 0x60},
        {0x00, 0x16, 0x22, 0x00, 0x3f, 0x63, 0x63, 0x60},
        {0x00, 0x26, 0x14, 0x00, 0x3f, 0x63, 0x63, 0x60},
        {0x00, 0x18, 0x10, 0x00, 0x1e, 0x18, 0x18, 0x78},
        {0x00, 0x26, 0x12, 0x00, 0x1e, 0x18, 0x18, 0x78},
        {0x00, 0x0c, 0x08, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x18, 0x08, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x26, 0x14, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x0c, 0x08, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x18, 0x08, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x0a, 0x05, 0x38, 0x6d, 0x6d, 0x28, 0x6c},
        {0x00, 0x04, 0x08, 0x00, 0x5e, 0x63, 0x63, 0x5e},
        {0x00, 0x04, 0x08, 0x00, 0x3f, 0x63, 0x63, 0x60},
        {0x00, 0x04, 0x08, 0x00, 0x1e, 0x18, 0x18, 0x78},
        {0x00, 0x04, 0x08, 0x00, 0x3e, 0x63, 0x63, 0x3e},
        {0x00, 0x28, 0x14, 0x00, 0x3f, 0x63, 0x63, 0x60},
        {0x00, 0x28, 0x14, 0x00, 0x1e, 0x18, 0x18, 0x78},
        {0x00, 0x28, 0x14, 0x00, 0x63, 0x63, 0x63, 0x3e},
        {0x00, 0x28, 0x14, 0x00, 0x22, 0x6b, 0x3e, 0x14},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00},
        {0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f},
        {0x00, 0x08, 0x04, 0x0c, 0x0c, 0x00, 0x00, 0x00},
        {0x00, 0x0c, 0x0c, 0x08, 0x04, 0x00, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x08, 0x04},
        {0x00, 0x0c, 0x0c, 0x04, 0x08, 0x00, 0x00, 0x00},
        {0x00, 0x24, 0x12, 0x36, 0x36, 0x00, 0x00, 0x00},
        {0x00, 0x36, 0x36, 0x24, 0x12, 0x00, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x24, 0x12},
        {0x00, 0x36, 0x36, 0x12, 0x24, 0x00, 0x00, 0x00},
        {0x00, 0x08, 0x08, 0x7f, 0x08, 0x08, 0x08, 0x08},
        {0x00, 0x08, 0x08, 0x7f, 0x08, 0x7f, 0x08, 0x08},
        {0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x00},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a},
        {0x00, 0x62, 0x35, 0x1a, 0x0c, 0x56, 0x53, 0x51},
        {0x00, 0x0c, 0x0c, 0x08, 0x04, 0x00, 0x00, 0x00},
        {0x00, 0x36, 0x36, 0x24, 0x12, 0x00, 0x00, 0x00},
        {0x00, 0x00, 0x00, 0x38, 0x0c, 0x06, 0x0c, 0x38},
        {0x00, 0x00, 0x00, 0x0e, 0x18, 0x30, 0x18, 0x0e},
        {0x00, 0x49, 0x22, 0x14, 0x49, 0x14, 0x22, 0x49},
        {0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x36},
        {0x00, 0x3e, 0x61, 0x6c, 0x3c, 0x0c, 0x00, 0x0c},
        {0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
        {0x00, 0x20, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x01},
        {0x00, 0x0e, 0x03, 0x7b, 0x1b, 0x3e, 0x18, 0x78},
        {0x00, 0x3e, 0x63, 0x03, 0x3b, 0x0b, 0x6b, 0x3e},
        {0x00, 0x7e, 0x06, 0x06, 0x3e, 0x06, 0x0f, 0x06},
        {0x00, 0x3c, 0x66, 0x5f, 0x06, 0x1f, 0x06, 0x7f},
        {0x00, 0x07, 0x09, 0x69, 0x17, 0x25, 0x49, 0x29},
        {0x00, 0x4f, 0x51, 0x55, 0x55, 0x55, 0x45, 0x3d},
        {0x00, 0x70, 0x20, 0x3e, 0x23, 0x3e, 0x00, 0x7e},
        {0x00, 0x7c, 0x06, 0x1f, 0x06, 0x1f, 0x06, 0x7c},
        {0x00, 0x66, 0x36, 0x1e, 0x7f, 0x1e, 0x36, 0x66},
        {0x00, 0x1e, 0x7f, 0x36, 0x7f, 0x1e, 0x06, 0x06},
        {0x00, 0x08, 0x1c, 0x36, 0x7f, 0x36, 0x7f, 0x36},
        {0x00, 0x08, 0x3e, 0x6b, 0x0b, 0x6b, 0x3e, 0x08},
        {0x00, 0x7f, 0x00, 0x7f, 0x1c, 0x1c, 0x1c, 0x1c},
        {0x00, 0x7e, 0x18, 0x7e, 0x18, 0x0e, 0x1c, 0x38},
        {0x00, 0x06, 0x0f, 0x06, 0x6f, 0x66, 0x66, 0x3c},
        {0x00, 0x08, 0x1c, 0x2a, 0x49, 0x49, 0x49, 0x49},
        {0x00, 0x3e, 0x66, 0x66, 0x3f, 0x06, 0x3f, 0x06},
        {0x00, 0x14, 0x3e, 0x55, 0x41, 0x01, 0x02, 0x7f},
        {0x00, 0x14, 0x3f, 0x66, 0x3e, 0x66, 0x3f, 0x14},
        {0x00, 0x3e, 0x63, 0x03, 0x63, 0x3e, 0x00, 0x7f},
        {0x00, 0x22, 0x55, 0x12, 0x10, 0x10, 0x50, 0x20},
        {0x00, 0x42, 0x61, 0x32, 0x18, 0x2c, 0x56, 0x23},
        {0x00, 0x72, 0x15, 0x12, 0x70, 0x10, 0x10, 0x10},
        {0x00, 0x0c, 0x16, 0x16, 0x0e, 0x07, 0x46, 0x3c},
        {0x00, 0x09, 0x09, 0x0b, 0x6d, 0x69, 0x09, 0x69},
        {0x00, 0x3e, 0x41, 0x5d, 0x5d, 0x45, 0x41, 0x3e},
        {0x00, 0x57, 0x72, 0x52, 0x52, 0x00, 0x00, 0x00},
        {0x00, 0x3e, 0x63, 0x63, 0x63, 0x63, 0x36, 0x77},
        {0x00, 0x3e, 0x63, 0x63, 0x7f, 0x03, 0x03, 0x3e},
        {0x00, 0x00, 0x08, 0x00, 0x0c, 0x08, 0x1c, 0x00},
        {0x00, 0x02, 0x05, 0x67, 0x15, 0x75, 0x40, 0x30},
        {0x00, 0x00, 0x00, 0x60, 0x60, 0x7c, 0x60, 0x7f},
        {0x00, 0x02, 0x03, 0x32, 0x42, 0x27, 0x40, 0x30},
        {0x00, 0x03, 0x04, 0x32, 0x41, 0x27, 0x40, 0x30},
        {0x00, 0x02, 0x03, 0x22, 0x52, 0x27, 0x50, 0x20},
        {0x00, 0x03, 0x04, 0x22, 0x54, 0x23, 0x50, 0x20},
        {0x00, 0x07, 0x01, 0x27, 0x54, 0x23, 0x50, 0x20},
        {0x00, 0x07, 0x04, 0x22, 0x52, 0x22, 0x50, 0x20},
        {0x00, 0x00, 0x00, 0x3e, 0x63, 0x60, 0x63, 0x3e},
        {0x00, 0x00, 0x0c, 0x06, 0x7f, 0x06, 0x0c, 0x00},
        {0x00, 0x08, 0x1c, 0x3e, 0x2a, 0x08, 0x08, 0x08},
        {0x00, 0x00, 0x18, 0x30, 0x7f, 0x30, 0x18, 0x00},
        {0x00, 0x08, 0x08, 0x08, 0x2a, 0x3e, 0x1c, 0x08},
        {0x00, 0x00, 0x14, 0x22, 0x7f, 0x22, 0x14, 0x00},
        {0x00, 0x08, 0x1c, 0x2a, 0x08, 0x2a, 0x1c, 0x08},
        {0x00, 0x1c, 0x2a, 0x08, 0x2a, 0x1c, 0x00, 0x3e},
        {0x00, 0x1c, 0x36, 0x60, 0x6e, 0x33, 0x39, 0x1e},
        {0x00, 0x08, 0x1c, 0x32, 0x32, 0x61, 0x61, 0x7f},
        {0x00, 0x7f, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x7f, 0x06, 0x0c, 0x18, 0x0c, 0x06, 0x7f},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00},
        {0x00, 0x20, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x01},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00},
        {0x00, 0x60, 0x60, 0x60, 0x33, 0x32, 0x36, 0x1c},
        {0x00, 0x00, 0x00, 0x00, 0x36, 0x49, 0x36, 0x00},
        {0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x7f},
        {0x00, 0x00, 0x00, 0x30, 0x18, 0x0c, 0x06, 0x7f},
        {0x00, 0x1c, 0x36, 0x63, 0x63, 0x63, 0x63, 0x63},
        {0x00, 0x70, 0x68, 0x08, 0x08, 0x08, 0x0b, 0x07},
        {0x00, 0x6e, 0x6b, 0x3b, 0x00, 0x6e, 0x6b, 0x3b},
        {0x00, 0x00, 0x00, 0x10, 0x3e, 0x08, 0x3e, 0x04},
        {0x00, 0x00, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e},
        {0x00, 0x38, 0x1c, 0x0e, 0x1c, 0x38, 0x00, 0x3e},
        {0x00, 0x0e, 0x1c, 0x38, 0x1c, 0x0e, 0x00, 0x3e},
        {0x00, 0x08, 0x14, 0x22, 0x22, 0x22, 0x22, 0x3e},
        {0x00, 0x00, 0x00, 0x00, 0x3e, 0x06, 0x06, 0x00},
        {0x00, 0x08, 0x1c, 0x3e, 0x7f, 0x00, 0x7f, 0x7f},
        {0x00, 0x09, 0x1b, 0x37, 0x6f, 0x37, 0x1b, 0x09},
        {0x00, 0x48, 0x6c, 0x76, 0x7b, 0x76, 0x6c, 0x48},
        {0x00, 0x51, 0x53, 0x57, 0x5f, 0x57, 0x53, 0x51},
        {0x00, 0x30, 0x38, 0x3c, 0x3e, 0x3c, 0x38, 0x30},
        {0x00, 0x06, 0x0e, 0x1e, 0x3e, 0x1e, 0x0e, 0x06},
        {0x00, 0x00, 0x08, 0x1c, 0x3e, 0x7f, 0x7f, 0x00},
        {0x00, 0x00, 0x7f, 0x7f, 0x3e, 0x1c, 0x08, 0x00},
        {0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36},
        {0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f},
        {0x00, 0x1c, 0x3e, 0x7f, 0x7f, 0x7f, 0x3e, 0x1c},
        {0x00, 0x08, 0x2a, 0x6b, 0x49, 0x41, 0x63, 0x3e},
        {0x00, 0x3e, 0x63, 0x49, 0x49, 0x49, 0x63, 0x3e},
        {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
        {0xaa, 0x00, 0x55, 0x00, 0xaa, 0x00, 0x55, 0x00},
        {0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55},
        {0x00, 0x00, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x00},
        {0x00, 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3e, 0x00},
        {0x00, 0x00, 0x08, 0x1c, 0x3e, 0x1c, 0x08, 0x00},
        {0x00, 0x40, 0x60, 0x70, 0x78, 0x7c, 0x7e, 0x7f},
        {0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f},
        {0x00, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01},
        {0x00, 0x7f, 0x7e, 0x7c, 0x78, 0x70, 0x60, 0x40},
        {0x00, 0x00, 0x08, 0x14, 0x22, 0x14, 0x08, 0x00},
        {0x00, 0x00, 0x04, 0x2a, 0x51, 0x41, 0x3e, 0x00},
        {0x00, 0x48, 0x24, 0x10, 0x46, 0x2f, 0x0f, 0x06},
        {0x00, 0x00, 0x00, 0x1c, 0x22, 0x2a, 0x22, 0x1c},
        {0x00, 0x1f, 0x31, 0x51, 0x51, 0x31, 0x11, 0x0e},
        {0x00, 0x1c, 0x1e, 0x1b, 0x1b, 0x1b, 0x1b, 0x7b},
        {0x00, 0x1c, 0x2a, 0x49, 0x5d, 0x6b, 0x2a, 0x1c},
        {0x00, 0x3e, 0x41, 0x55, 0x41, 0x5d, 0x41, 0x3e},
        {0x00, 0x3e, 0x7f, 0x6b, 0x7f, 0x63, 0x7f, 0x3e},
        {0x00, 0x08, 0x2a, 0x14, 0x63, 0x14, 0x2a, 0x08},
        {0x00, 0x1c, 0x3e, 0x7f, 0x41, 0x7f, 0x3e, 0x1c},
        {0x00, 0x08, 0x08, 0x1c, 0x3e, 0x6b, 0x08, 0x14},
        {0x00, 0x00, 0x20, 0x20, 0x12, 0x0a, 0x04, 0x00},
        {0x00, 0x00, 0x22, 0x14, 0x08, 0x14, 0x22, 0x00},
        {0x00, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30},
        {0x00, 0x06, 0x0c, 0x18, 0x30, 0x18, 0x0c, 0x06},
        {0x00, 0x6c, 0x36, 0x1b, 0x09, 0x1b, 0x36, 0x6c},
        {0x00, 0x1b, 0x36, 0x6c, 0x48, 0x6c, 0x36, 0x1b},
        {0x00, 0x0c, 0x1e, 0x1e, 0x1e, 0x1e, 0x0c, 0x00},
        {0x00, 0x0c, 0x1e, 0x1e, 0x1e, 0x0c, 0x00, 0x00},
        {0x00, 0x6e, 0x06, 0x6f, 0x66, 0x66, 0x66, 0x66},
        {0x00, 0x6e, 0x66, 0x6f, 0x66, 0x66, 0x66, 0x66},
        {0x00, 0x43, 0x47, 0x6c, 0x3e, 0x1b, 0x31, 0x61},
        {0x00, 0x1c, 0x3a, 0x7d, 0x5d, 0x49, 0x22, 0x1c},
        {0x00, 0x0e, 0x3f, 0x79, 0x6c, 0x26, 0x06, 0x06},
        {0x00, 0x1c, 0x22, 0x41, 0x41, 0x77, 0x36, 0x36},
        {0x00, 0x7f, 0x5d, 0x3e, 0x1c, 0x08, 0x1c, 0x3e},
        {0x00, 0x1c, 0x3e, 0x2a, 0x2a, 0x3e, 0x1c, 0x08},
        {0x00, 0x38, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f},
        {0x00, 0x38, 0x00, 0x7f, 0x03, 0x7d, 0x7e, 0x3f},
        {0x00, 0x1f, 0x29, 0x49, 0x79, 0x41, 0x41, 0x7f},
        {0x00, 0x06, 0x07, 0x03, 0x06, 0x6c, 0x78, 0x30},
        {0x00, 0x08, 0x1c, 0x2a, 0x08, 0x49, 0x41, 0x7f},
        {0x00, 0x08, 0x08, 0x2a, 0x1c, 0x49, 0x41, 0x7f},
        {0x00, 0x00, 0x7f, 0x63, 0x55, 0x49, 0x41, 0x7f},
        {0x00, 0x70, 0x67, 0x51, 0x09, 0x25, 0x21, 0x3f},
        {0x00, 0x22, 0x77, 0x7f, 0x7f, 0x3e, 0x1c, 0x08},
        {0x00, 0x3e, 0x22, 0x7f, 0x61, 0x5d, 0x63, 0x3e},
        {0x00, 0x3e, 0x41, 0x41, 0x41, 0x2e, 0x50, 0x60},
        {0x00, 0x3e, 0x41, 0x41, 0x41, 0x3a, 0x05, 0x03},
        {0x00, 0x30, 0x18, 0x30, 0x60, 0x00, 0x5f, 0x5f},
        {0x00, 0x1c, 0x1c, 0x00, 0x3e, 0x3e, 0x1c, 0x08},
        {0x00, 0x1c, 0x1c, 0x00, 0x08, 0x1c, 0x3e, 0x3e},
        {0x00, 0x1c, 0x3e, 0x6f, 0x7f, 0x57, 0x3e, 0x1c},
    };
    // Low 3 nibbles: index into glyph[]. High 5 nibbles: code point.
    static i32 hashtable[4096] = {
        [  16]=0x02012351,[  18]=0x02013352,[  20]=0x02014353,[  22]=0x02015354,
        [  24]=0x02016355,[  26]=0x02017356,[  28]=0x02018357,[  30]=0x02019358,
        [  32]=0x0201a359,[  34]=0x0201b35a,[  36]=0x0201c35b,[  38]=0x0201d35c,
        [  40]=0x0201e35d,[  42]=0x0201f35e,[  44]=0x0202035f,[  46]=0x02021360,
        [  48]=0x02022361,[  56]=0x02026362,[  63]=0x00020000,[  65]=0x00021001,
        [  67]=0x00022002,[  69]=0x00023003,[  71]=0x00024004,[  73]=0x00025005,
        [  75]=0x00026006,[  76]=0x02030363,[  77]=0x00027007,[  79]=0x00028008,
        [  80]=0x02032364,[  81]=0x00029009,[  82]=0x02033365,[  83]=0x0002a00a,
        [  85]=0x0002b00b,[  87]=0x0002c00c,[  89]=0x0002d00d,[  91]=0x0002e00e,
        [  93]=0x0002f00f,[  94]=0x02039366,[  95]=0x00030010,[  96]=0x0203a367,
        [  97]=0x00031011,[  98]=0x0203b368,[  99]=0x00032012,[ 100]=0x0203c369,
        [ 101]=0x00033013,[ 102]=0x0203d36a,[ 103]=0x00034014,[ 104]=0x0203e36b,
        [ 105]=0x00035015,[ 107]=0x00036016,[ 109]=0x00037017,[ 111]=0x00038018,
        [ 113]=0x00039019,[ 115]=0x0003a01a,[ 116]=0x0204436c,[ 117]=0x0003b01b,
        [ 119]=0x0003c01c,[ 121]=0x0003d01d,[ 123]=0x0003e01e,[ 125]=0x0003f01f,
        [ 127]=0x00040020,[ 129]=0x00041021,[ 131]=0x00042022,[ 133]=0x00043023,
        [ 135]=0x00044024,[ 137]=0x00045025,[ 139]=0x00046026,[ 141]=0x00047027,
        [ 143]=0x00048028,[ 145]=0x00049029,[ 147]=0x0004a02a,[ 149]=0x0004b02b,
        [ 151]=0x0004c02c,[ 153]=0x0004d02d,[ 155]=0x0004e02e,[ 157]=0x0004f02f,
        [ 159]=0x00050030,[ 161]=0x00051031,[ 163]=0x00052032,[ 165]=0x00053033,
        [ 167]=0x00054034,[ 169]=0x00055035,[ 171]=0x00056036,[ 173]=0x00057037,
        [ 175]=0x00058038,[ 177]=0x00059039,[ 179]=0x0005a03a,[ 181]=0x0005b03b,
        [ 183]=0x0005c03c,[ 185]=0x0005d03d,[ 187]=0x0005e03e,[ 189]=0x0005f03f,
        [ 191]=0x00060040,[ 193]=0x00061041,[ 195]=0x00062042,[ 197]=0x00063043,
        [ 199]=0x00064044,[ 201]=0x00065045,[ 203]=0x00066046,[ 205]=0x00067047,
        [ 207]=0x00068048,[ 209]=0x00069049,[ 211]=0x0006a04a,[ 213]=0x0006b04b,
        [ 215]=0x0006c04c,[ 217]=0x0006d04d,[ 219]=0x0006e04e,[ 221]=0x0006f04f,
        [ 223]=0x00070050,[ 225]=0x00071051,[ 227]=0x00072052,[ 229]=0x00073053,
        [ 231]=0x00074054,[ 233]=0x00075055,[ 235]=0x00076056,[ 237]=0x00077057,
        [ 239]=0x00078058,[ 241]=0x00079059,[ 243]=0x0007a05a,[ 245]=0x0007b05b,
        [ 247]=0x0007c05c,[ 249]=0x0007d05d,[ 251]=0x0007e05e,[ 300]=0x020a036d,
        [ 304]=0x020a236e,[ 306]=0x020a336f,[ 308]=0x020a4370,[ 316]=0x020a8371,
        [ 319]=0x000a005f,[ 320]=0x020aa372,[ 321]=0x000a1060,[ 322]=0x020ab373,
        [ 323]=0x000a2061,[ 324]=0x020ac374,[ 325]=0x000a3062,[ 326]=0x020ad375,
        [ 327]=0x000a4063,[ 329]=0x000a5064,[ 331]=0x000a6065,[ 333]=0x000a7066,
        [ 334]=0x020b1376,[ 335]=0x000a8067,[ 337]=0x000a9068,[ 338]=0x020b3377,
        [ 339]=0x000aa069,[ 341]=0x000ab06a,[ 342]=0x020b5378,[ 343]=0x000ac06b,
        [ 345]=0x000ad06c,[ 347]=0x000ae06d,[ 348]=0x020b8379,[ 349]=0x000af06e,
        [ 350]=0x020b937a,[ 351]=0x000b006f,[ 352]=0x020ba37b,[ 353]=0x000b1070,
        [ 355]=0x000b2071,[ 356]=0x020bc37c,[ 357]=0x000b3072,[ 358]=0x020bd37d,
        [ 359]=0x000b4073,[ 360]=0x020be37e,[ 361]=0x000b5074,[ 362]=0x020bf37f,
        [ 363]=0x000b6075,[ 364]=0x020c0380,[ 365]=0x000b7076,[ 367]=0x000b8077,
        [ 369]=0x000b9078,[ 371]=0x000ba079,[ 373]=0x000bb07a,[ 375]=0x000bc07b,
        [ 377]=0x000bd07c,[ 379]=0x000be07d,[ 381]=0x000bf07e,[ 383]=0x000c007f,
        [ 385]=0x000c1080,[ 387]=0x000c2081,[ 389]=0x000c3082,[ 391]=0x000c4083,
        [ 393]=0x000c5084,[ 395]=0x000c6085,[ 397]=0x000c7086,[ 399]=0x000c8087,
        [ 401]=0x000c9088,[ 403]=0x000ca089,[ 405]=0x000cb08a,[ 407]=0x000cc08b,
        [ 409]=0x000cd08c,[ 411]=0x000ce08d,[ 413]=0x000cf08e,[ 414]=0x1f9653f1,
        [ 415]=0x000d008f,[ 417]=0x000d1090,[ 419]=0x000d2091,[ 421]=0x000d3092,
        [ 423]=0x000d4093,[ 425]=0x000d5094,[ 427]=0x000d6095,[ 429]=0x000d7096,
        [ 431]=0x000d8097,[ 433]=0x000d9098,[ 435]=0x000da099,[ 437]=0x000db09a,
        [ 439]=0x000dc09b,[ 441]=0x000dd09c,[ 443]=0x000de09d,[ 445]=0x000df09e,
        [ 447]=0x000e009f,[ 449]=0x000e10a0,[ 451]=0x000e20a1,[ 453]=0x000e30a2,
        [ 455]=0x000e40a3,[ 457]=0x000e50a4,[ 459]=0x000e60a5,[ 461]=0x000e70a6,
        [ 463]=0x000e80a7,[ 465]=0x000e90a8,[ 467]=0x000ea0a9,[ 469]=0x000eb0aa,
        [ 471]=0x000ec0ab,[ 473]=0x000ed0ac,[ 475]=0x000ee0ad,[ 477]=0x000ef0ae,
        [ 479]=0x000f00af,[ 481]=0x000f10b0,[ 483]=0x000f20b1,[ 485]=0x000f30b2,
        [ 487]=0x000f40b3,[ 489]=0x000f50b4,[ 491]=0x000f60b5,[ 493]=0x000f70b6,
        [ 495]=0x000f80b7,[ 497]=0x000f90b8,[ 498]=0x02103381,[ 499]=0x000fa0b9,
        [ 501]=0x000fb0ba,[ 502]=0x02105382,[ 503]=0x000fc0bb,[ 505]=0x000fd0bc,
        [ 507]=0x000fe0bd,[ 509]=0x000ff0be,[ 510]=0x02109383,[ 511]=0x001000bf,
        [ 513]=0x001010c0,[ 515]=0x001020c1,[ 517]=0x001030c2,[ 519]=0x001040c3,
        [ 521]=0x001050c4,[ 523]=0x001060c5,[ 525]=0x001070c6,[ 527]=0x001080c7,
        [ 529]=0x001090c8,[ 530]=0x02113384,[ 531]=0x0010a0c9,[ 533]=0x0010b0ca,
        [ 535]=0x0010c0cb,[ 536]=0x02116385,[ 537]=0x0010d0cc,[ 538]=0x02117386,
        [ 539]=0x0010e0cd,[ 541]=0x0010f0ce,[ 543]=0x001100cf,[ 545]=0x001110d0,
        [ 547]=0x001120d1,[ 549]=0x001130d2,[ 551]=0x001140d3,[ 553]=0x001150d4,
        [ 555]=0x001160d5,[ 557]=0x001170d6,[ 559]=0x001180d7,[ 560]=0x02122387,
        [ 561]=0x001190d8,[ 563]=0x0011a0d9,[ 565]=0x0011b0da,[ 567]=0x0011c0db,
        [ 568]=0x02126388,[ 569]=0x0011d0dc,[ 571]=0x0011e0dd,[ 573]=0x0011f0de,
        [ 575]=0x001200df,[ 577]=0x001210e0,[ 579]=0x001220e1,[ 581]=0x001230e2,
        [ 583]=0x001240e3,[ 584]=0x0212e389,[ 585]=0x001250e4,[ 587]=0x001260e5,
        [ 589]=0x001270e6,[ 591]=0x001280e7,[ 593]=0x001290e8,[ 595]=0x0012a0e9,
        [ 597]=0x0012b0ea,[ 599]=0x0012c0eb,[ 601]=0x0012d0ec,[ 603]=0x0012e0ed,
        [ 605]=0x0012f0ee,[ 606]=0x0213938a,[ 607]=0x001300ef,[ 609]=0x001310f0,
        [ 611]=0x001320f1,[ 613]=0x001330f2,[ 615]=0x001340f3,[ 617]=0x001350f4,
        [ 619]=0x001360f5,[ 621]=0x001370f6,[ 623]=0x001380f7,[ 625]=0x001390f8,
        [ 627]=0x0013a0f9,[ 629]=0x0013b0fa,[ 631]=0x0013c0fb,[ 633]=0x0013d0fc,
        [ 635]=0x0013e0fd,[ 637]=0x0013f0fe,[ 639]=0x001400ff,[ 641]=0x00141100,
        [ 643]=0x00142101,[ 645]=0x00143102,[ 646]=0x0214d38b,[ 647]=0x00144103,
        [ 648]=0x0214e38c,[ 649]=0x00145104,[ 651]=0x00146105,[ 653]=0x00147106,
        [ 655]=0x00148107,[ 657]=0x00149108,[ 658]=0x0215338d,[ 659]=0x0014a109,
        [ 660]=0x0215438e,[ 661]=0x0014b10a,[ 663]=0x0014c10b,[ 665]=0x0014d10c,
        [ 667]=0x0014e10d,[ 669]=0x0014f10e,[ 671]=0x0015010f,[ 673]=0x00151110,
        [ 674]=0x0215b38f,[ 675]=0x00152111,[ 676]=0x0215c390,[ 677]=0x00153112,
        [ 678]=0x0215d391,[ 679]=0x00154113,[ 680]=0x0215e392,[ 681]=0x00155114,
        [ 683]=0x00156115,[ 685]=0x00157116,[ 687]=0x00158117,[ 689]=0x00159118,
        [ 691]=0x0015a119,[ 693]=0x0015b11a,[ 695]=0x0015c11b,[ 697]=0x0015d11c,
        [ 699]=0x0015e11d,[ 701]=0x0015f11e,[ 703]=0x0016011f,[ 705]=0x00161120,
        [ 707]=0x00162121,[ 709]=0x00163122,[ 711]=0x00164123,[ 713]=0x00165124,
        [ 715]=0x00166125,[ 717]=0x00167126,[ 719]=0x00168127,[ 721]=0x00169128,
        [ 723]=0x0016a129,[ 725]=0x0016b12a,[ 727]=0x0016c12b,[ 729]=0x0016d12c,
        [ 731]=0x0016e12d,[ 733]=0x0016f12e,[ 735]=0x0017012f,[ 737]=0x00171130,
        [ 739]=0x00172131,[ 741]=0x00173132,[ 743]=0x00174133,[ 745]=0x00175134,
        [ 747]=0x00176135,[ 749]=0x00177136,[ 751]=0x00178137,[ 753]=0x00179138,
        [ 755]=0x0017a139,[ 756]=0x02184393,[ 757]=0x0017b13a,[ 759]=0x0017c13b,
        [ 761]=0x0017d13c,[ 763]=0x0017e13d,[ 765]=0x0017f13e,[ 769]=0x0018113f,
        [ 779]=0x00186140,[ 780]=0x02190394,[ 782]=0x02191395,[ 784]=0x02192396,
        [ 785]=0x00189141,[ 786]=0x02193397,[ 787]=0x0018a142,[ 788]=0x02194398,
        [ 790]=0x02195399,[ 795]=0x0018e143,[ 797]=0x0018f144,[ 799]=0x00190145,
        [ 801]=0x00191146,[ 803]=0x00192147,[ 805]=0x00193148,[ 807]=0x00194149,
        [ 813]=0x0019714a,[ 815]=0x0019814b,[ 817]=0x0019914c,[ 825]=0x0019d14d,
        [ 828]=0x021a839a,[ 831]=0x001a014e,[ 833]=0x001a114f,[ 861]=0x001af150,
        [ 862]=0x001b0151,[ 866]=0x001b2152,[ 868]=0x001b3153,[ 870]=0x001b4154,
        [ 876]=0x001b7155,[ 878]=0x001b8156,[ 880]=0x001b9157,[ 894]=0x001c0158,
        [ 896]=0x001c1159,[ 898]=0x001c215a,[ 900]=0x001c315b,[ 920]=0x001cd15c,
        [ 922]=0x001ce15d,[ 924]=0x001cf15e,[ 926]=0x001d015f,[ 928]=0x001d1160,
        [ 930]=0x001d2161,[ 932]=0x001d3162,[ 934]=0x001d4163,[ 966]=0x001e4164,
        [ 968]=0x001e5165,[ 970]=0x001e6166,[ 972]=0x001e7167,[ 974]=0x001e8168,
        [ 976]=0x001e9169,[ 978]=0x001ea16a,[ 980]=0x001eb16b,[ 998]=0x001f416c,
        [1000]=0x001f516d,[1006]=0x001f816e,[1007]=0x0220239b,[1008]=0x001f916f,
        [1015]=0x0220639c,[1033]=0x0220f39d,[1037]=0x0221139e,[1039]=0x0221239f,
        [1045]=0x022153a0,[1053]=0x022193a1,[1055]=0x0221a3a2,[1063]=0x0221e3a3,
        [1065]=0x0221f3a4,[1067]=0x022203a5,[1070]=0x00218170,[1072]=0x00219171,
        [1074]=0x0021a172,[1076]=0x0021b173,[1082]=0x0021e174,[1084]=0x0021f175,
        [1085]=0x022293a6,[1089]=0x0222b3a7,[1102]=0x00228176,[1104]=0x00229177,
        [1114]=0x0022e178,[1116]=0x0022f179,[1122]=0x0023217a,[1124]=0x0023317b,
        [1147]=0x022483a8,[1152]=0x0024117c,[1154]=0x0024217d,[1158]=0x0024417e,
        [1188]=0x0025317f,[1190]=0x00254180,[1194]=0x00256181,[1195]=0x022603a9,
        [1196]=0x00257182,[1197]=0x022613aa,[1200]=0x00259183,[1203]=0x022643ab,
        [1204]=0x0025b184,[1205]=0x022653ac,[1214]=0x00260185,[1220]=0x00263186,
        [1230]=0x00268187,[1250]=0x00272188,[1262]=0x00278189,[1265]=0x1f30d3dd,
        [1296]=0x0028918a,[1300]=0x0028b18b,[1314]=0x0029218c,[1318]=0x0029418d,
        [1320]=0x0029518e,[1322]=0x0029618f,[1343]=0x1f3343de,[1366]=0x002ac190,
        [1368]=0x002ad191,[1389]=0x0fb013da,[1391]=0x0fb023db,[1392]=0x002b9192,
        [1394]=0x002ba193,[1396]=0x002bb194,[1398]=0x002bc195,[1400]=0x002bd196,
        [1410]=0x002c2197,[1412]=0x002c3198,[1414]=0x002c4199,[1416]=0x002c519a,
        [1418]=0x002c619b,[1420]=0x002c719c,[1438]=0x002d019d,[1440]=0x002d119e,
        [1454]=0x002d819f,[1456]=0x002d91a0,[1458]=0x002da1a1,[1460]=0x002db1a2,
        [1462]=0x002dc1a3,[1464]=0x002dd1a4,[1519]=0x023023ad,[1544]=0x0fb4f3dc,
        [1547]=0x023103ae,[1573]=0x1f3a73df,[1635]=0x1f3c63e0,[1757]=0x003701a5,
        [1759]=0x003711a6,[1761]=0x003721a7,[1763]=0x003731a8,[1765]=0x003741a9,
        [1767]=0x003751aa,[1769]=0x003761ab,[1771]=0x003771ac,[1777]=0x0037a1ad,
        [1779]=0x0037b1ae,[1781]=0x0037c1af,[1783]=0x0037d1b0,[1785]=0x0037e1b1,
        [1787]=0x0037f1b2,[1797]=0x003841b3,[1799]=0x003851b4,[1801]=0x003861b5,
        [1803]=0x003871b6,[1805]=0x003881b7,[1807]=0x003891b8,[1809]=0x0038a1b9,
        [1813]=0x0038c1ba,[1817]=0x0038e1bb,[1819]=0x0038f1bc,[1821]=0x003901bd,
        [1823]=0x003911be,[1825]=0x003921bf,[1827]=0x003931c0,[1829]=0x003941c1,
        [1831]=0x003951c2,[1833]=0x003961c3,[1835]=0x003971c4,[1837]=0x003981c5,
        [1839]=0x003991c6,[1841]=0x0039a1c7,[1843]=0x0039b1c8,[1845]=0x0039c1c9,
        [1847]=0x0039d1ca,[1849]=0x0039e1cb,[1851]=0x0039f1cc,[1853]=0x003a01cd,
        [1855]=0x003a11ce,[1859]=0x003a31cf,[1861]=0x003a41d0,[1863]=0x003a51d1,
        [1865]=0x003a61d2,[1867]=0x003a71d3,[1869]=0x003a81d4,[1871]=0x003a91d5,
        [1873]=0x003aa1d6,[1875]=0x003ab1d7,[1877]=0x003ac1d8,[1879]=0x003ad1d9,
        [1881]=0x003ae1da,[1883]=0x003af1db,[1885]=0x003b01dc,[1887]=0x003b11dd,
        [1889]=0x003b21de,[1891]=0x003b31df,[1893]=0x003b41e0,[1895]=0x003b51e1,
        [1897]=0x003b61e2,[1899]=0x003b71e3,[1901]=0x003b81e4,[1903]=0x003b91e5,
        [1905]=0x003ba1e6,[1907]=0x003bb1e7,[1909]=0x003bc1e8,[1911]=0x003bd1e9,
        [1913]=0x003be1ea,[1915]=0x003bf1eb,[1917]=0x003c01ec,[1919]=0x003c11ed,
        [1921]=0x003c21ee,[1923]=0x003c31ef,[1925]=0x003c41f0,[1927]=0x003c51f1,
        [1928]=0x023cf3af,[1929]=0x003c61f2,[1931]=0x003c71f3,[1933]=0x003c81f4,
        [1935]=0x003c91f5,[1937]=0x003ca1f6,[1939]=0x003cb1f7,[1941]=0x003cc1f8,
        [1943]=0x003cd1f9,[1945]=0x003ce1fa,[1947]=0x003cf1fb,[1949]=0x003d01fc,
        [1951]=0x003d11fd,[1953]=0x003d21fe,[1955]=0x003d31ff,[1957]=0x003d4200,
        [1959]=0x003d5201,[1961]=0x003d6202,[1963]=0x003d7203,[1965]=0x003d8204,
        [1967]=0x003d9205,[1969]=0x003da206,[1971]=0x003db207,[1973]=0x003dc208,
        [1975]=0x003dd209,[1977]=0x003de20a,[1979]=0x003df20b,[1980]=0x023e93b0,
        [1981]=0x003e020c,[1982]=0x023ea3b1,[1983]=0x003e120d,[1985]=0x003e220e,
        [1987]=0x003e320f,[1989]=0x003e4210,[1991]=0x003e5211,[1992]=0x023ef3b2,
        [1993]=0x003e6212,[1995]=0x003e7213,[1997]=0x003e8214,[1999]=0x003e9215,
        [2000]=0x1f47d3e1,[2001]=0x003ea216,[2002]=0x023f43b3,[2003]=0x003eb217,
        [2004]=0x023f53b4,[2005]=0x003ec218,[2006]=0x023f63b5,[2007]=0x003ed219,
        [2008]=0x023f73b6,[2009]=0x003ee21a,[2010]=0x023f83b7,[2011]=0x003ef21b,
        [2012]=0x023f93b8,[2013]=0x003f021c,[2014]=0x023fa3b9,[2015]=0x003f121d,
        [2016]=0x023fb3ba,[2017]=0x003f221e,[2018]=0x023fc3bb,[2019]=0x003f321f,
        [2021]=0x003f4220,[2023]=0x003f5221,[2025]=0x003f6222,[2027]=0x003f7223,
        [2029]=0x003f8224,[2031]=0x003f9225,[2033]=0x003fa226,[2035]=0x003fb227,
        [2037]=0x003fc228,[2039]=0x003fd229,[2041]=0x003fe22a,[2043]=0x003ff22b,
        [2045]=0x0040022c,[2047]=0x0040122d,[2049]=0x0040222e,[2051]=0x0040322f,
        [2053]=0x00404230,[2055]=0x00405231,[2057]=0x00406232,[2059]=0x00407233,
        [2061]=0x00408234,[2063]=0x00409235,[2065]=0x0040a236,[2067]=0x0040b237,
        [2069]=0x0040c238,[2071]=0x0040d239,[2073]=0x0040e23a,[2075]=0x0040f23b,
        [2077]=0x0041023c,[2079]=0x0041123d,[2081]=0x0041223e,[2083]=0x0041323f,
        [2085]=0x00414240,[2087]=0x00415241,[2089]=0x00416242,[2091]=0x00417243,
        [2093]=0x00418244,[2095]=0x00419245,[2097]=0x0041a246,[2099]=0x0041b247,
        [2101]=0x0041c248,[2103]=0x0041d249,[2105]=0x0041e24a,[2107]=0x0041f24b,
        [2109]=0x0042024c,[2111]=0x0042124d,[2113]=0x0042224e,[2115]=0x0042324f,
        [2117]=0x00424250,[2119]=0x00425251,[2121]=0x00426252,[2123]=0x00427253,
        [2125]=0x00428254,[2127]=0x00429255,[2129]=0x0042a256,[2131]=0x0042b257,
        [2133]=0x0042c258,[2135]=0x0042d259,[2136]=0x1f4c13e2,[2137]=0x0042e25a,
        [2138]=0x1f4c23e3,[2139]=0x0042f25b,[2141]=0x0043025c,[2142]=0x1f4c43e4,
        [2143]=0x0043125d,[2145]=0x0043225e,[2147]=0x0043325f,[2149]=0x00434260,
        [2151]=0x00435261,[2153]=0x00436262,[2155]=0x00437263,[2157]=0x00438264,
        [2159]=0x00439265,[2161]=0x0043a266,[2163]=0x0043b267,[2165]=0x0043c268,
        [2167]=0x0043d269,[2169]=0x0043e26a,[2171]=0x0043f26b,[2173]=0x0044026c,
        [2175]=0x0044126d,[2177]=0x0044226e,[2179]=0x0044326f,[2181]=0x00444270,
        [2183]=0x00445271,[2185]=0x00446272,[2187]=0x00447273,[2189]=0x00448274,
        [2191]=0x00449275,[2193]=0x0044a276,[2194]=0x1f4de3e5,[2195]=0x0044b277,
        [2197]=0x0044c278,[2199]=0x0044d279,[2201]=0x0044e27a,[2203]=0x0044f27b,
        [2205]=0x0045027c,[2206]=0x1f4e43e6,[2207]=0x0045127d,[2208]=0x1f4e53e7,
        [2209]=0x0045227e,[2211]=0x0045327f,[2212]=0x1f4e73e8,[2213]=0x00454280,
        [2215]=0x00455281,[2217]=0x00456282,[2219]=0x00457283,[2221]=0x00458284,
        [2223]=0x00459285,[2225]=0x0045a286,[2227]=0x0045b287,[2229]=0x0045c288,
        [2231]=0x0045d289,[2233]=0x0045e28a,[2235]=0x0045f28b,[2308]=0x1f5173e9,
        [2333]=0x0049028c,[2335]=0x0049128d,[2337]=0x0049228e,[2339]=0x0049328f,
        [2345]=0x00496290,[2347]=0x00497291,[2349]=0x00498292,[2351]=0x00499293,
        [2353]=0x0049a294,[2355]=0x0049b295,[2365]=0x004a0296,[2367]=0x004a1297,
        [2369]=0x004a2298,[2371]=0x004a3299,[2385]=0x004aa29a,[2387]=0x004ab29b,
        [2393]=0x004ae29c,[2395]=0x004af29d,[2397]=0x004b029e,[2399]=0x004b129f,
        [2401]=0x004b22a0,[2403]=0x004b32a1,[2417]=0x004ba2a2,[2419]=0x004bb2a3,
        [2431]=0x004c12a4,[2433]=0x004c22a5,[2461]=0x004d02a6,[2463]=0x004d12a7,
        [2473]=0x004d62a8,[2475]=0x004d72a9,[2477]=0x004d82aa,[2479]=0x004d92ab,
        [2509]=0x004e82ac,[2511]=0x004e92ad,[2529]=0x004f22ae,[2531]=0x004f32af,
        [2590]=0x1f5a43ea,[2598]=0x1f5a83eb,[2726]=0x1f5e83ec,[2728]=0x1f5e93ed,
        [2809]=0x025883bc,[2827]=0x025913bd,[2829]=0x025923be,[2857]=0x025a03bf,
        [2859]=0x025a13c0,[2940]=0x005c02b0,[2946]=0x005c32b1,[2951]=0x025cf3c1,
        [2952]=0x005c62b2,[2972]=0x005d02b3,[2974]=0x005d12b4,[2976]=0x005d22b5,
        [2978]=0x005d32b6,[2980]=0x005d42b7,[2982]=0x005d52b8,[2984]=0x005d62b9,
        [2986]=0x005d72ba,[2988]=0x005d82bb,[2989]=0x025e23c2,[2990]=0x005d92bc,
        [2991]=0x025e33c3,[2992]=0x005da2bd,[2993]=0x025e43c4,[2994]=0x005db2be,
        [2995]=0x025e53c5,[2996]=0x005dc2bf,[2997]=0x025e63c6,[2998]=0x005dd2c0,
        [3000]=0x005de2c1,[3002]=0x005df2c2,[3004]=0x005e02c3,[3006]=0x005e12c4,
        [3008]=0x005e22c5,[3010]=0x005e32c6,[3012]=0x005e42c7,[3014]=0x005e52c8,
        [3016]=0x005e62c9,[3018]=0x005e72ca,[3020]=0x005e82cb,[3022]=0x005e92cc,
        [3024]=0x005ea2cd,[3036]=0x005f02ce,[3038]=0x005f12cf,[3040]=0x005f22d0,
        [3042]=0x005f32d1,[3044]=0x005f42d2,[3051]=0x026013c7,[3057]=0x026043c8,
        [3058]=0x01e022d3,[3060]=0x01e032d4,[3067]=0x026093c9,[3074]=0x01e0a2d5,
        [3076]=0x01e0b2d6,[3078]=0x01e0c2d7,[3080]=0x01e0d2d8,[3086]=0x01e102d9,
        [3088]=0x01e112da,[3091]=0x026153ca,[3114]=0x01e1e2db,[3115]=0x026213cb,
        [3116]=0x01e1f2dc,[3117]=0x1f6ac3ee,[3126]=0x01e242dd,[3128]=0x01e252de,
        [3130]=0x01e262df,[3132]=0x01e272e0,[3134]=0x01e282e1,[3136]=0x01e292e2,
        [3141]=0x0262e3cc,[3143]=0x1f6b93ef,[3145]=0x1f6ba3f0,[3150]=0x01e302e3,
        [3152]=0x01e312e4,[3162]=0x01e362e5,[3164]=0x01e372e6,[3165]=0x0263a3cd,
        [3167]=0x0263b3ce,[3169]=0x0263c3cf,[3170]=0x01e3a2e7,[3172]=0x01e3b2e8,
        [3178]=0x01e3e2e9,[3180]=0x01e3f2ea,[3182]=0x01e402eb,[3184]=0x01e412ec,
        [3190]=0x01e442ed,[3192]=0x01e452ee,[3198]=0x01e482ef,[3200]=0x01e492f0,
        [3222]=0x01e542f1,[3223]=0x01e552f2,[3225]=0x01e562f3,[3227]=0x01e572f4,
        [3233]=0x01e5a2f5,[3235]=0x01e5b2f6,[3245]=0x01e602f7,[3247]=0x01e612f8,
        [3249]=0x01e622f9,[3251]=0x01e632fa,[3265]=0x01e6a2fb,[3267]=0x01e6b2fc,
        [3269]=0x01e6c2fd,[3271]=0x01e6d2fe,[3301]=0x01e7c2ff,[3303]=0x01e7d300,
        [3309]=0x01e80301,[3311]=0x01e81302,[3313]=0x01e82303,[3315]=0x01e83304,
        [3317]=0x01e84305,[3319]=0x01e85306,[3341]=0x01e90307,[3343]=0x01e91308,
        [3345]=0x01e92309,[3347]=0x01e9330a,[3363]=0x01e9b30b,[3365]=0x01e9c30c,
        [3367]=0x01e9d30d,[3369]=0x01e9e30e,[3373]=0x01ea030f,[3375]=0x01ea1310,
        [3421]=0x01eb8311,[3423]=0x01eb9312,[3429]=0x01ebc313,[3431]=0x01ebd314,
        [3453]=0x01ec8315,[3455]=0x01ec9316,[3457]=0x01eca317,[3459]=0x01ecb318,
        [3461]=0x01ecc319,[3463]=0x01ecd31a,[3472]=0x026d43d0,[3489]=0x01eda31b,
        [3491]=0x01edb31c,[3493]=0x01edc31d,[3495]=0x01edd31e,[3501]=0x01ee031f,
        [3503]=0x01ee1320,[3509]=0x01ee4321,[3511]=0x01ee5322,[3513]=0x01ee6323,
        [3515]=0x01ee7324,[3517]=0x01ee8325,[3519]=0x01ee9326,[3521]=0x01eea327,
        [3523]=0x01eeb328,[3529]=0x01eee329,[3531]=0x01eef32a,[3537]=0x01ef232b,
        [3539]=0x01ef332c,[3541]=0x01ef432d,[3543]=0x01ef532e,[3545]=0x01ef632f,
        [3547]=0x01ef7330,[3549]=0x01ef8331,[3551]=0x01ef9332,[3565]=0x01f00333,
        [3573]=0x01f04334,[3575]=0x01f05335,[3576]=0x027083d1,[3581]=0x01f08336,
        [3597]=0x01f10337,[3598]=0x027133d2,[3599]=0x01f11338,[3605]=0x01f14339,
        [3607]=0x01f1533a,[3613]=0x01f1833b,[3629]=0x01f2033c,[3631]=0x01f2133d,
        [3633]=0x01f2233e,[3635]=0x01f2333f,[3637]=0x01f24340,[3661]=0x01f30341,
        [3671]=0x01f35342,[3693]=0x01f40343,[3695]=0x01f41344,[3701]=0x01f44345,
        [3712]=0x0274c3d3,[3725]=0x01f50346,[3727]=0x01f51347,[3762]=0x0a78b3d8,
        [3764]=0x0a78c3d9,[3787]=0x01f6f348,[3789]=0x01f70349,[3797]=0x01f7434a,
        [3801]=0x01f7634b,[3805]=0x01f7834c,[3961]=0x01fc634d,[3993]=0x01fd634e,
        [4024]=0x027e83d4,[4025]=0x01fe634f,[4026]=0x027e93d5,[4057]=0x01ff6350,
        [4087]=0x0300a3d6,[4089]=0x0300b3d7
    };
    int i = (cp * 2094721u) >> 20;
    if (cp && hashtable[i]>>12==cp) {
        return glyph[hashtable[i] & 0xfff];
    }
    return 0;
}


#ifdef DEMO
// Given no arguments, render a full glyph map of the font. Otherwise
// render concatenated arguments. Images are written to standard output
// in Netpbm PGM (P5) format.
// $ ./pixelfont >glyphmap.pgm
// $ ./pixelfont >hellosmile.pgm Hello, ☺!
// $ ls | xargs ./pixelfont >ls.pgm

#define SCALE 2
#define MAXX  256
#define MAXY  120
typedef _Bool bool;

static bool fullwrite(u8 *, int);

typedef struct {
    int w, h;
    u8 d[MAXY*8*SCALE][MAXX*8*SCALE];
} imagebuf;

static void clear(imagebuf *im)
{
    im->w = im->h = 0;
    for (int y = 0; y < 8*SCALE*MAXY; y++) {
        for (int x = 0; x < 8*SCALE*MAXX; x++) {
            im->d[y][x] = 0xff;  // fill with white background
        }
    }

}

static void draw(imagebuf *im, int x, int y, c32 cp)
{
    x *= 8*SCALE;
    y *= 8*SCALE;
    u8 *glyph = getglyph(cp);
    glyph = glyph ? glyph : getglyph('?');
    for (int dy = 0; dy < 8*SCALE; dy++) {
        int sy = dy / SCALE;
        for (int dx = 0; dx < 8*SCALE; dx++) {
            int sx = dx / SCALE;
            im->d[y+dy][x+dx] = (u8)-!((glyph[sy] >> sx) & 1);
        }
    }
}

static bool writepgm(imagebuf *im)
{
    u8 header[] = "P5\n.... ....\n255\n";
    header[ 3] = (u8)(im->w>999 ? '0' + im->w/1000 %10 : ' ');
    header[ 4] = (u8)(im->w>99  ? '0' + im->w/100  %10 : ' ');
    header[ 5] = (u8)(im->w>9   ? '0' + im->w/10   %10 : ' ');
    header[ 6] = (u8)(            '0' + im->w/1    %10      );
    header[ 8] = (u8)(im->h>999 ? '0' + im->h/1000 %10 : ' ');
    header[ 9] = (u8)(im->h>99  ? '0' + im->h/100  %10 : ' ');
    header[10] = (u8)(im->h>9   ? '0' + im->h/10   %10 : ' ');
    header[11] = (u8)(            '0' + im->h/1    %10      );
    bool err = 0;
    err |= !fullwrite(header, sizeof(header)-1);
    for (int y = 0; y < im->h; y++) {
        err |= !fullwrite(im->d[y], im->w);
    }
    return err;
}

static void glyphmap(imagebuf *im)
{
    int n = 0;
    im->w = 32*8*SCALE;
    im->h = 32*8*SCALE;
    for (int cp = 0; cp <= 0x10ffff; cp++) {
        if (getglyph(cp)) {
            draw(im, n%32, n/32, cp);
            n++;
        }
    }
    for (; n < 32*32; n++) {
        draw(im, n%32, n/32, ' ');  // fill remainder with spaces
    }
}


#ifdef _WIN32
// $ cc -DDEMO -nostartfiles -o pixelfont.exe pixelfont.c
// $ cl /DDEMO pixelfont.c /link /subsystem:console kernel32.lib shell32.lib
typedef unsigned short char16_t;  // GDB hint
typedef char16_t c16;

#define W32(r) __declspec(dllimport) r __stdcall
W32(c16 *)  GetCommandLineW(void);
W32(c16 **) CommandLineToArgvW(c16 *, int *);
W32(void *) GetStdHandle(int);
W32(int)    WriteFile(void *, void *, int, int *, void *);

static bool fullwrite(u8 *buf, int len)
{
    void *stdout = GetStdHandle(-11);
    int dummy;
    return WriteFile(stdout, buf, len, &dummy, 0);
}

static c16 *c16to32(c16 *s, c32 *cp)
{
    if (s[0]>=0xd800 && s[0]<=0xdbff && s[1]) {  // surrogate pair
        *cp = 0x10000 + ((s[0] - 0xd800)<<10) + (s[1] - 0xdc00);
        return s + 2;
    }
    *cp = *s;
    return s + 1;
}

static void renderargs(imagebuf *im, int argc, c16 **argv)
{
    int x = 0;
    int y = 0;
    int maxx = 0;
    for (int i = 1; i<argc && y<MAXY; i++, x=0, y++) {
        c32 cp;
        c16 *s = c16to32(argv[i], &cp);
        for (; cp && x<MAXX; s = c16to32(s, &cp)) {
            draw(im, x++, y, cp);
        }
        maxx = maxx>x ? maxx : x;
    }
    im->w = 8*SCALE*maxx;
    im->h = 8*SCALE*y;
}

int mainCRTStartup(void)
{
    static imagebuf im[1];
    clear(im);

    c16 *cmdline = GetCommandLineW();
    int argc;
    c16 **argv = CommandLineToArgvW(cmdline, &argc);
    switch (argc) {
    case  0:
    case  1: glyphmap(im);
             break;
    default: renderargs(im, argc, argv);
    }
    return !writepgm(im);
}


#else  // generic C
// Assumes argv is UTF-8 and stdout can write binary data.
// $ cc -DDEMO -o pixelfont pixelfont.c
#include <stdio.h>
#include <string.h>

static bool fullwrite(u8 *buf, int len)
{
    return fwrite(buf, len, 1, stdout);
}

// Decode a code point from the buffer. Returns read length (1-4).
// Invalid bytes are decoded as U+FFFD. Length must be non-zero.
int c8to32(char *s, int len, c32 *c)
{
    switch (s[0]&0xf0) {
    default  : *c = (i32)(s[0]&0xff) << 0;
               if (*c > 0x7f) break;
               return 1;
    case 0xc0:
    case 0xd0: if (len < 2) break;
               if ((s[1]&0xc0) != 0x80) break;
               *c = (i32)(s[0]&0x1f) << 6 |
                    (i32)(s[1]&0x3f) << 0;
               if (*c < 0x80) {
                   break;
               }
               return 2;
    case 0xe0: if (len < 3) break;
               if ((s[1]&0xc0) != 0x80) break;
               if ((s[2]&0xc0) != 0x80) break;
               *c = (i32)(s[0]&0x0f) << 12 |
                    (i32)(s[1]&0x3f) <<  6 |
                    (i32)(s[2]&0x3f) <<  0;
               if (*c<0x800 || (*c>=0xd800 && *c<=0xdfff)) {
                   break;
               }
               return 3;
    case 0xf0: if (len < 4) break;
               if ((s[1]&0xc0) != 0x80) break;
               if ((s[2]&0xc0) != 0x80) break;
               if ((s[3]&0xc0) != 0x80) break;
               *c = (i32)(s[0]&0x0f) << 18 |
                    (i32)(s[1]&0x3f) << 12 |
                    (i32)(s[2]&0x3f) <<  6 |
                    (i32)(s[3]&0x3f) <<  0;
               if (*c<0x10000 || *c>0x10ffff) {
                   break;
               }
               return 4;
    }
    *c = 0xfffd;
    return 1;
}

static void renderargs(imagebuf *im, int argc, char **argv)
{
    int x = 0;
    int y = 0;
    int maxx = 0;
    for (int i = 1; i<argc && y<MAXY; i++, x=0, y++) {
        char *s = argv[i];
        char *e = s + strlen(s);
        for (c32 cp; *s && x<MAXX;) {
            s += c8to32(s, (int)(e-s), &cp);
            draw(im, x++, y, cp);
        }
        maxx = maxx>x ? maxx : x;
    }
    im->w = 8*SCALE*maxx;
    im->h = 8*SCALE*y;
}

int main(int argc, char **argv)
{
    static imagebuf im[1];
    clear(im);
    switch (argc) {
    case  0:
    case  1: glyphmap(im);
             break;
    default: renderargs(im, argc, argv);
    }
    return !writepgm(im);
}
#endif
#endif  // DEMO


#ifdef EXTRACT
#define STB_TRUETYPE_IMPLEMENTATION
#include "stb_truetype.h"
#include <stdio.h>

// Encode a codepoint into the buffer. Returns write length (1-4).
// Invalid codepoints are encoded as U+FFFD.
int utf8encode(char *s, int c)
{
    if (c<0 || (c>=0xd800 && c<=0xdfff) || c>0x10ffff) {
        c = 0xfffd;
    }
    switch ((c >= 0x80) + (c >= 0x800) + (c >= 0x10000)) {
    case 0: s[0] = 0x00 | ((c >>  0)     ); return 1;
    case 1: s[0] = 0xc0 | ((c >>  6)     );
            s[1] = 0x80 | ((c >>  0) & 63); return 2;
    case 2: s[0] = 0xe0 | ((c >> 12)     );
            s[1] = 0x80 | ((c >>  6) & 63);
            s[2] = 0x80 | ((c >>  0) & 63); return 3;
    case 3: s[0] = 0xf0 | ((c >> 18)     );
            s[1] = 0x80 | ((c >> 12) & 63);
            s[2] = 0x80 | ((c >>  6) & 63);
            s[3] = 0x80 | ((c >>  0) & 63); return 4;
    }
}

int main(int argc, char **argv)
{
    static char ttf[1<<20];
    stbtt_fontinfo font;
    FILE *ttfin = fopen("PublicPixel.ttf", "rb");
    fread(ttf, 1, sizeof(ttf), ttfin);
    stbtt_InitFont(&font, ttf, stbtt_GetFontOffsetForIndex(ttf, 0));
    float scale = stbtt_ScaleForPixelHeight(&font, 8);

    for (int c=0, n=0; n < font.numGlyphs; c++) {
        if (stbtt_FindGlyphIndex(&font, c)) {
            int w, h, xoff, yoff;
            unsigned char *bitmap = stbtt_GetCodepointBitmap(
                &font, 0, scale, c, &w, &h, &xoff, &yoff
            );
            printf("%05x %02dx%02d", c, n%32, n/32);
            unsigned char glyph[8][8] = {0};
            for (int y = 0; y < h; y++) {
                for (int x = 0; x < w; x++) {
                    glyph[y+yoff+8][x+xoff] = -(bitmap[y*w+x] > 127);
                }
            }
            for (int y = 0; y < 8; y++) {
                int r = 0;
                for (int x = 0; x < 8; x++) {
                    r |= !!glyph[y][x] << x;
                }
                printf(" %02x", r);
            }
            char s[6] = {0};
            utf8encode(s, c);
            printf(" %s\n", s);
            n++;
        }
    }
}
#endif
